IP Library › Granted Patent US 12,211,129
Granted Patent B2
US 12,211,129 · App. 17/744,393 · Granted Jan 28, 2025

Layout-aware text rendering and effects execution

Inventors: Praveen Kumar Dhanuka (Kolkata, IN); Nirmal Kumawat (Rajasthan, IN); Arushi Jain (Delhi, IN)
Assignee: Adobe Inc.
G06T11/60G06F40/106G06F40/109G06F40/166G06T11/203G06T2210/12G06T2210/21
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,211,129
App. No.
17/744,393
Granted
Jan 28, 2025
Kind
B2
Abstract

Embodiments are disclosed for identifying and modifying overlapping glyphs in a text layout. A method of identifying and modifying overlapping glyphs includes detecting a plurality of overlapping glyphs in a text layout, modifying a geometry of one or more of the overlapping glyphs based on an aesthetic score, updating a rendering tree based on the modified geometry of the one or more overlapping glyphs, and rendering the text layout using the rendering tree.

Claims (64)

1. A method comprising:

detecting a plurality of overlapping glyphs in a text layout;

identifying an overlapping region, wherein the overlapping region includes a first overlapping glyph of the plurality of overlapping glyphs and a second overlapping glyph of the plurality of overlapping glyphs;

selecting a glyph of the first overlapping glyph or the second overlapping glyph to be modified based on a comparison of an aesthetic score of a portion of the first overlapping glyph in the overlapping region and an aesthetic score of a portion of the second overlapping glyph in the overlapping region, wherein the aesthetic score is calculated by applying Birkhoff s formula to one or more Bezier segments of the overlapping region;

expanding an outline of the selected glyph to modify a geometry of one or more overlapping glyphs of the plurality of overlapping glyphs;

updating a rendering tree including one or more nodes associated with one or more glyphs, wherein the rendering tree is updated by updating a node of the one or more nodes based on the modified geometry of the one or more overlapping glyphs; and

rendering the text layout using the rendering tree.

2. The method of claim 1 , wherein detecting a plurality of overlapping glyphs in a text layout, further comprises:

determining a plurality of candidate overlapping glyphs by comparing a bounding box of a first glyph with positions of one or more adjacent glyphs; and

determining the plurality of overlapping glyphs from the plurality of candidate overlapping glyphs by identifying at least one outline intersection between the first glyph and the one or more adjacent glyphs.

3. The method of claim 2 , wherein the one or more adjacent glyphs include one or more glyphs on a same line as the first glyph or one or more glyphs on a line above or below the first glyph.

4. The method of claim 1 , further comprising:

adding the plurality of overlapping glyphs to an overlapping glyphs list.

5. The method of claim 4 , expanding the outline of the selected glyph to modify a geometry of the one or more overlapping glyphs, further comprises:

for each pair of overlapping glyphs from the overlapping glyphs list:

identifying a first overlapped region;

obtaining an outline of each of the overlapping glyphs from a font engine; and

modifying the outline of a first overlapping glyph based on the outline of a second overlapping glyph and an offset value, wherein the first overlapping glyph has a lower aesthetic score than the second overlapping glyph.

6. The method of claim 4 , wherein updating a rendering tree based on the modified geometry of the one or more overlapping glyphs, further comprises:

adding a node to the rendering tree for each pair of overlapping glyphs.

7. The method of claim 6 , wherein a node associated with a pair of overlapping glyphs includes at least the modified geometry associated with the pair of overlapping glyphs.

8. The method of claim 1 , wherein the updated node is associated with at least two glyphs of the plurality of overlapping glyphs.

9. A non-transitory computer-readable medium storing executable instructions, which when executed by a processing device, cause the processing device to perform operations comprising:

detecting a plurality of overlapping glyphs in a text layout;

identifying an overlapping region, wherein the overlapping region includes a first overlapping glyph of the plurality of overlapping glyphs and a second overlapping glyph of the plurality of overlapping glyphs:

selecting a glyph of the first overlapping glyph or the second overlapping glyph to be modified based on a comparison of an aesthetic score of a portion of the first overlapping glyph in the overlapping region and an aesthetic score of a portion of the second overlapping glyph in the overlapping region, wherein the aesthetic score is calculated by applying Birkhoff s formula to one or more Bezier segments of the overlapping region;

expanding an outline of the selected glyph to modify a geometry of one or more overlapping glyphs of the plurality of overlapping glyphs;

updating a rendering tree including one or more nodes associated with one or more glyphs, wherein the rendering tree is updated by updating a node of the one or more nodes based on the modified geometry of the one or more overlapping glyphs; and

rendering the text layout using the rendering tree.

10. The non-transitory computer-readable medium of claim 9 , wherein the operation of detecting a plurality of overlapping glyphs in a text layout, further comprises:

determining a plurality of candidate overlapping glyphs by comparing a bounding box of a first glyph with positions of one or more adjacent glyphs; and

determining the plurality of overlapping glyphs from the plurality of candidate overlapping glyphs by identifying at least one outline intersection between the first glyph and the one or more adjacent glyphs.

11. The non-transitory computer-readable medium of claim 10 , wherein the one or more adjacent glyphs include one or more glyphs on a same line as the first glyph or one or more glyphs on a line above or below the first glyph.

12. The non-transitory computer-readable medium of claim 9 , wherein the executable instructions, when executed, further cause the processing device to perform operations comprising:

adding the plurality of overlapping glyphs to an overlapping glyphs list.

13. The non-transitory computer-readable medium of claim 12 , wherein the operation of expanding the outline of the selected glyph to modify a geometry of the one or more overlapping glyphs, further comprises:

for each pair of overlapping glyphs from the overlapping glyphs list:

identifying a first overlapped region;

obtaining an outline of each of the overlapping glyphs from a font engine; and

modifying the outline of a first overlapping glyph based on the outline of a second overlapping glyph and an offset value, wherein the first overlapping glyph has a lower aesthetic score than the second overlapping glyph.

14. The non-transitory computer-readable medium of claim 12 , wherein the operation of updating a rendering tree based on the modified geometry of the one or more overlapping glyphs, further comprises:

adding a node to the rendering tree for each pair of overlapping glyphs.

15. The non-transitory computer-readable medium of claim 14 , wherein a node associated with a pair of overlapping glyphs includes at least the modified geometry associated with the pair of overlapping glyphs.

16. The non-transitory computer-readable medium of claim 9 , wherein the updated node is associated with at least two glyphs of the plurality of overlapping glyphs.

17. A system comprising:

a memory component; and

a processing device coupled to the memory component, the processing device to perform operations comprising:

detecting a plurality of candidate overlapping glyphs in a text layout;

identifying at least one pair of overlapping glyphs from the plurality of candidate overlapping glyphs;

identifying an overlapping region, wherein the overlapping region includes a first overlapping glyph of the pair of overlapping glyphs and a second overlapping glyph of the pair of overlapping glyphs;

selecting a glyph from the first overlapping glyph or the second overlapping glyph to be modified based on a comparison of an aesthetic score of a portion of the first overlapping glyph in the overlapping region and an aesthetic score of a portion of the second overlapping glyph in the overlapping region, wherein the aesthetic score is calculated by applying Birkhoff s formula to one or more Bezier segments of the overlapping region;

expanding an outline of the selected glyph;

associating the at least one pair of overlapping glyphs with an overlap identifier;

rendering one or more fill pixels associated with the at least one pair of overlapping glyphs; and

responsive to determining that a stroke pixel is not a fill pixel, rendering one or more stroke pixels associated with the at least one pair of overlapping glyphs based on the overlap identifier.

18. The system of claim 17 , wherein the operation of rendering fills associated with the at least one pair of overlapping glyphs further comprises:

setting a sentinel value for each pixel associated with the overlap identifier.

19. The system of claim 18 , wherein the operation of rendering strokes associated with the at least one pair of overlapping glyphs based on the overlap identifier further comprises:

checking the sentinel value for a pixel being rendered; and

if the sentinel value is set, ignoring a stroke value associated with that pixel; or

if the sentinel value is not set, overwriting a fill value with the stroke value associated with that pixel.

20. The system of claim 17 , wherein the operations further comprise:

determining a merged outline of the at least one pair of overlapping glyphs; and

applying an effect to the text layout using the merged outline.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2022
From: DHANUKA, PRAVEEN KUMAR; KUMAWAT, NIRMAL; JAIN, ARUSHI
To: ADOBE INC.
Reel/Frame 059929/0080 →
Continuity (1)
Related Publication 20230368445A1 · Nov 16, 2023
References Cited (22)
US 5803629A · Neville · 1998 [cited by examiner]
US 8438474B1 · Lloyd · 2013 [cited by examiner]
US 9251548B1 · Garrity · 2016 [cited by examiner]
US 10922575B1 · Singh · 2021 [cited by examiner]
US 20080069447A1 · Hotta · 2008 [cited by examiner]
US 20080238927A1 · Mansfield · 2008 [cited by examiner]
US 20110119573A1 · Rudolph · 2011 [cited by examiner]
US 20120158768A1 · Lamanna · 2012 [cited by examiner]
US 20130159916A1 · Wadayama · 2013 [cited by examiner]
US 20150030244A1 · Robles-Kelly · 2015 [cited by examiner]
US 20160357720A1 · Thimbleby · 2016 [cited by examiner]
US 20170132484A1 · Malon · 2017 [cited by examiner]
US 20180053048A1 · Zhou · 2018 [cited by examiner]
US 20180075296A1 · Matsuda · 2018 [cited by examiner]
US 20200372695A1 · Beri · 2020 [cited by examiner]
US 20210012547A1 · Kumawat · 2021 [cited by examiner]
US 20210019365A1 · Mangla · 2021 [cited by examiner]
US 20210042381A1 · Kumawat · 2021 [cited by examiner]
US 20210081493A1 · Arora · 2021 [cited by examiner]
US 20210124907A1 · Deng · 2021 [cited by examiner]
Asente et al., “Dynamic Planar Map Illustration,” ACM Transactions on Graphics (Proc. SIGGRAPH), 26(3), Aug. 2007, pp. 30:1-30: 10. [cited by applicant]
Gobithaasan et al., “Numerical Aesthetic Measure of Curves,” The 12th Int. Conf. On Human & Computers (HC2009), Dec. 2009, 6 pages. [cited by applicant]
Cited By (1)
US 12,602,536