Optical kerning for multi-character sets
AssigneeApple Inc.
InventorsJacob G. Refstrup, Martin J. Murrett, Christopher E. Rudolph
Life of this patent
Estimating the term…
Abstract
A content processing application that implements a method for displaying characters at least a threshold distance apart. The method receives two consecutive characters. The method automatically identifies a distance between the two consecutive characters and moves at least one of the two consecutive characters to adjust the distance between the two consecutive characters to a threshold distance apart.
Claims20
A non-transitory machine readable medium storing a program which when executed by at least one processing unit displays characters, the program comprising sets of instructions for:
- approximating a right edge of graphical elements of a first character definition as a first sequential set of sections, wherein each section in the first set spans a first vertical distance and uses a rightmost point of the first character definition within its vertical span as a horizontal location for the section;
- approximating a left edge of graphical elements of a second character definition as a second sequential set of sections, wherein each section in the second set spans a second vertical distance and uses a leftmost point of the second character definition within its vertical span as a horizontal location for the section;
- iteratively:
- selecting a pair of sections, comprising a section from the first set of sections and a section from the second set of sections, wherein, in each iteration, either (i) a section that is farther along the first sequential set of sections in the first set than the section from the first set selected in the previous iteration is selected or (ii) a section that is farther along the second sequential set of sections in the second set than the section from the second set selected in the previous iteration is selected;
- and
- computing a distance between the selected pair of sections based on a default spacing between the character definitions;
- identifying a smallest computed distance between said selected pairs of sections;
- and
- displaying instances of the first character definition and the second character definition with a distance between the character instances based on the identified smallest distance.
A non-transitory machine readable medium storing a program which when executed by at least one processing unit determines distances between displayed characters, the program comprising sets of instructions for:
- determining a quantization length for each of a plurality of character definitions that each comprise one or more graphical elements that define a shape of the character;
- for each character definition:
- approximating the edges of the graphical elements of the character definition as a plurality of vertical and horizontal lines, wherein the vertical lines each span the quantization length for the character definition, wherein (i) each vertical line approximating a right edge of the character is located at a rightmost point of the graphical element within the span of the vertical line and (ii) each vertical line approximating a left edge of the character is located at a leftmost point of the graphical element within the span of the vertical line;
- and
- storing data identifying the plurality of lines;
- and
- upon receiving a command to display two characters, that comprise instances of character definitions, adjacent to each other, using the stored data for the character definitions to determine a distance between the two adjacent displayed characters based on distances between the approximated edges of the graphical elements of the two adjacent displayed characters.
A method of determining a distance to implement between two adjacent displayed characters, the method comprising:
- approximating a right edge of graphical elements of a first character definition as a first sequential set of sections, wherein each section in the first set spans a first vertical distance and uses a rightmost point of the first character definition within its vertical span as a horizontal location for the section;
- approximating a left edge of graphical elements of a second character definition as a second sequential set of sections, wherein each section in the second set spans a second vertical distance and uses a leftmost point of the second character definition within its vertical span as a horizontal location for the section, wherein the approximating the right edge and the left edge are performed by an electronic device;
- iteratively:
- selecting a pair of sections, comprising a section from the first set of sections and a section from the second set of sections, wherein, in each iteration, either (i) a section that is farther along the first sequential set of sections in the first set than the section from the first set selected in the previous iteration is selected or (ii) a section that is farther along the second sequential set of sections in the second set than the section from the second set selected in the previous iteration is selected;
- and
- computing a distance between the selected pair of sections based on a default spacing between the character definitions;
- identifying a smallest computed distance between said selected pairs of sections;
- and
- displaying instances of the first character definition and the second character definition with a distance between the character instances based on the identified smallest distance,
- wherein the approximations, iterative selection and computation, identification, and display are performed by an electronic device.
Dependencies are inferred from the claim text.