Simulating variances in human writing with digital typography

US9865071B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9865071-B2
Application numberUS-201514949768-A
CountryUS
Kind codeB2
Filing dateNov 23, 2015
Priority dateJun 20, 2012
Publication dateJan 9, 2018
Grant dateJan 9, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Methods and systems for rendering text to simulate human penmanship are described. A text rendering engine converts a text string into an image that can be displayed using one or more seed numbers to influence the rendering and appearance of the text. The text rendering engine may render variations of each character of the text string using the seed numbers to select from a set of single-character or multi-character glyphs, or to modify a size, weight, slope, or Bezier curve point of the character.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: receiving a text string comprising a plurality of characters; storing a plurality of single-character glyphs; storing a plurality of multi-character glyphs; generating a plurality of random numbers; using a first random number of the plurality of random numbers to determine a first character of the plurality of characters to be rendered, wherein the first random number indicates that the first character is to be rendered as a first single-character glyph of the plurality of single-character glyphs; using a second random number of the plurality of random numbers to determine a second character of the plurality of characters to be rendered, wherein the second random number indicates that the second character is to be rendered as a part of a first multi-character glyph of the plurality of multi-character glyphs; and selecting a sequence of glyphs from the plurality of single-character glyphs and the plurality of multi-character glyphs, the sequence of glyphs comprising the first single character glyph and the first multi-character glyph. 2. The method of claim 1 , wherein the plurality of multi-character glyphs comprises a plurality of digraphs, wherein each of the plurality of digraphs is associated with exactly two characters, and wherein selecting the sequence of glyphs comprises selecting a sequence of digraphs based on the plurality of characters in the text string. 3. The method of claim 1 , wherein selecting the sequence of glyphs comprises selecting a sequence of single-character glyphs based on at least one random number of the plurality of random numbers. 4. The method of claim 1 , wherein selecting the sequence of glyphs comprises selecting the sequence of glyphs based on one or more predetermined rules. 5. The method of claim 4 , wherein the one or more predetermined rules comprise a rule specifying that one or more specific characters are to be rendered as a single-character glyph. 6. The method of claim 4 , wherein the one or more predetermined rules comprise a rule specifying that a specific character combination is to be rendered as a multi-character glyph. 7. The method of claim 1 , wherein selecting the sequence of glyphs comprises selecting from between at least a first sequence of glyphs and a second sequence of glyphs, wherein the first sequence of glyphs and the second sequence of glyphs both correspond to the characters of the text string. 8. A method comprising: using a random number to determine a character to be rendered; identifying, by a processing device, a glyph corresponding to the character; determining, by the processing device, a variable font defining the glyph, wherein the variable font defines the glyph using one or more probability distribution functions; generating, by the processing device, a first variation of the glyph by applying a first seed value to the one or more probability distribution functions, the first seed value comprising a first random number; generating a second variation of the glyph by applying a second seed value to the one or more probability distribution functions, the second seed value comprising a second random number; rendering the first variation of the glyph at a first occurrence of the character in a text string; and rendering the second variation of the glyph at a second occurrence of the character in the text string to simulate human handwriting of the text string. 9. The method of claim 8 , further comprising: receiving an electronic book file comprising a header storing the first seed value and the second seed value and a body comprising the text string. 10. The method of claim 8 , further comprising: generating a plurality of random numbers; generating the first seed value using a first random number of the plurality of random numbers; and generating the second seed value using a second random number of the plurality of random numbers. 11. The method of claim 8 , wherein generating the first variation of the glyph comprises: determining a first font size based on the first seed value and the one or more probability distribution functions; and generating the first variation of the glyph based on the first font size. 12. The method of claim 8 , wherein generating the first variation of the glyph comprises: determining a first font weight based on the first seed value and the one or more probability distribution functions; and generating the first variation of the glyph based on the first font weight. 13. The method of claim 8 , wherein generating the first variation of the glyph comprises: determining a first font slope based on the first seed value and the one or more probability distribution functions; and generating the first variation of the glyph based on the first font slope. 14. The method of claim 8 , wherein generating the first variation of the glyph comprises: determining a plurality of Bezier parameters based on the first seed value and the one or more probability distribution functions; and generating the first variation of the glyph based on the plurality of Bezier parameters, wherein the first variation of the glyph is associated with one or more Bezier curves defined, at least in part, by one or more of the plurality of Bezier parameters. 15. The method of claim 14 , wherein at least one of the plurality of Bezier parameters is indicative of a Bezier curve point location coordinate. 16. The method of claim 8 , wherein generating the first variation of the glyph comprises executing a text rendering engine that uses the variable font to determine a base glyph shape and generates the first variation of the glyph based on the base glyph shape and the one or more probability distribution functions. 17. The method of claim 8 , wherein generating the first variation of the glyph comprises executing a text rendering engine that uses the variable font to call a font subroutine that returns a glyph shape for the first variation of the glyph that is different from an original glyph shape of the glyph. 18. The method of claim 8 , wherein the variable font defines the glyph as a set of Bezier curve point probability distribution functions and wherein generating the first variation of the glyph comprises generating sample sets of Bezier curve point location coordinates based on the Bezier curve point probability distribution functions. 19. A system, comprising: a memory to store instructions; and a processing device, operatively coupled to the memory, to execute the instructions, wherein the processing device is to: use a random number to determine a character to be rendered; identify a glyph corresponding to the character; determine a variable font defining the glyph, wherein the variable font defines the glyph using one or more probability distribution functions; generate a first variation of the glyph by applying a first seed value to the one or more probability distribution functions, the first seed value comprising a first random number; generate a second variation of the glyph by applying a second seed value to the one or more probability distribution functions, the second seed value comprising a first random number; render the first variation of the glyph at a first occurrence of the character in a text string; and render the second variation of the glyph at a second occurrence of the character in the text string to simulate human handwriting of the text string. 20. The system of claim 19 , wherein the processing device is further to: generate a

Assignees

Inventors

Classifications

  • G09G5/24Primary

    Generation of individual character patterns · CPC title

  • Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements · CPC title

  • for enhancement of character form, e.g. smoothing · CPC title

  • Font handling; Temporal or kinetic typography · CPC title

  • G06T11/60Primary

    Creating or editing images; Combining images with text · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9865071B2 cover?
Methods and systems for rendering text to simulate human penmanship are described. A text rendering engine converts a text string into an image that can be displayed using one or more seed numbers to influence the rendering and appearance of the text. The text rendering engine may render variations of each character of the text string using the seed numbers to select from a set of single-charac…
Who is the assignee on this patent?
Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification G09G5/24. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 09 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).