IP Library Granted Patent US 10,242,464
Granted Patent B1
US 10,242,464 · App. 15/707,212 · Granted Mar 26, 2019

Diffusion coloring using weighted color points

Inventors: Ankit Phogat (Noida, IN); Vineet Batra (Pritam Pura, IN); Mridul Kavidayal (Noida, IN)
Assignee: Adobe Systems Incorporated
G06T11/001G06T9/20G06T11/203G06T2200/24
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 10,242,464
App. No.
15/707,212
Granted
Mar 26, 2019
Kind
B1
Abstract

An automated process provides diffusion coloring of vector graphics using color points, which appear to the user as color handles. A computing device programmatically receives input from a user establishing a plurality of color handles within a source geometry specified by a set of curves. The computing device defines a mesh with a plurality of vertices distributed throughout the source geometry. A resultant color at each vertex of the plurality of vertices is determined and a diffused pixel color is programmatically set for each pixel within the source geometry by interpolating between the resultant colors at the plurality of vertices.

Claims (40)

1. A method comprising:

receiving, by a computing device, input from a user adding a plurality of color handles to a source graphical image specified by a set of curves;

establishing, by the computing device, the plurality of color handles so that each color handle is freely placeable within the source graphical image;

defining, by the computing device, a plurality of vertices distributed throughout the source graphical image;

determining, by the computing device, a resultant color at each vertex of the plurality of vertices by calculating a weighted sum of color values contributed by the plurality of color handles;

setting, by the computing device, a diffused pixel color for each pixel of a plurality of pixels within the source graphical image by interpolating between the resultant colors at the plurality of vertices; and

producing, by the computing device, a rendered geometry specified by the set of curves, the rendered geometry including the diffused pixel color for each pixel.

2. The method of claim 1 wherein the input includes at least one of a color handle color, a color handle weight, a color handle position, or a change to one or more of the foregoing.

3. The method of claim 1 wherein the input includes a quality parameter and wherein the weighted sum of color values is determined by a solution to a harmonic, bi-harmonic, or tri-harmonic equation as determined by the quality parameter.

4. The method of claim 1 wherein the plurality of vertices correspond to points in a triangular mesh, and wherein the method further comprises producing the triangular mesh by conforming Delaunay triangulation and bounded by a clipping path based on boundaries of the source graphical image.

5. The method of claim 4 wherein a position of each color handle of the plurality of color handles is defined by a Steiner point.

6. The method of claim 1 wherein the set of curves comprises cubic Bezier splines.

7. The method of claim 1 wherein the input comprises a change to the source graphical image, and wherein the method further comprises recalculating the resultant color at each vertex of the plurality of vertices and resetting a diffused pixel color for each pixel of a plurality of pixels.

8. A system comprising:

a processor; and

a non-transitory computer-readable medium coupled to the processor, wherein the processor is configured to execute computer program code stored in the non-transitory computer-readable medium and thereby perform operations comprising:

receiving input from a user adding a plurality of color handles to a source graphical image specified by a set of curves;

establishing the plurality of color handles so that each color handle is freely placeable within the source graphical image;

defining a plurality of vertices distributed throughout the source graphical image;

determining, by the computing device, a resultant color at each vertex of the plurality of vertices by calculating a weighted sum of color values contributed by the plurality of color handles;

setting, by the computing device, a diffused pixel color for each pixel of a plurality of pixels within the source graphical image by interpolating between the resultant colors at the plurality of vertices; and

producing, by the computing device, a rendered geometry specified by the set of curves, the rendered geometry including the diffused pixel color for each pixel.

9. The system of claim 8 wherein the input includes at least one of a color handle color, a color handle weight, a color handle position, or a change to one or more of the foregoing.

10. The system of claim 8 wherein the input includes a quality parameter and wherein the weighted sum of color values is determined by a solution to a harmonic, bi-harmonic, or tri-harmonic equation as determined by the quality parameter.

11. The system of claim 8 wherein the plurality of vertices correspond to points in a triangular mesh, and wherein the operations further comprise producing the triangular mesh by conforming Delaunay triangulation and bounded by a clipping path based on boundaries of the source graphical image.

12. The system of claim 11 wherein a position of each color handle of the plurality of color handles is defined by a Steiner point.

13. The system of claim 8 wherein the input comprises a change to the source graphical image, and wherein the operations further comprise recalculating the resultant color at each vertex of the plurality of vertices and resetting a diffused pixel color for each pixel of a plurality of pixels.

14. A non-transitory computer-readable medium storing program code executable by a processor to perform operations, the operations comprising:

receiving input from a user adding a plurality of color handles to a source graphical image specified by a set of curves;

establishing the plurality of color handles so that each color handle is freely placeable within the source graphical image;

defining a plurality of vertices distributed throughout the source graphical image;

determining, by the computing device, a resultant color at each vertex of the plurality of vertices by calculating a weighted sum of color values contributed by the plurality of color handles;

setting, by the computing device, a diffused pixel color for each pixel of a plurality of pixels within the source graphical image by interpolating between the resultant colors at the plurality of vertices; and

producing, by the computing device, a rendered geometry specified by the set of curves, the rendered geometry including the diffused pixel color for each pixel.

15. The non-transitory computer-readable medium of claim 14 wherein the input includes at least one of a color handle color, a color handle weight, a color handle position, or a change to one or more of the foregoing.

16. The non-transitory computer-readable medium of claim 14 wherein the input includes a quality parameter and wherein the weighted sum of color values is determined by a solution to a harmonic, bi-harmonic, or tri-harmonic equation as determined by the quality parameter.

17. The non-transitory computer-readable medium of claim 14 wherein the plurality of vertices correspond to points in a triangular mesh, and wherein the operations further comprise producing the triangular mesh by conforming Delaunay triangulation and bounded by a clipping path based on boundaries of the source graphical image.

18. The non-transitory computer-readable medium of claim 17 wherein a position of each color handle of the plurality of color handles is defined by a Steiner point.

19. The non-transitory computer-readable medium of claim 14 wherein the set of curves comprises cubic Bezier splines.

20. The non-transitory computer-readable medium of claim 14 wherein the input comprises a change to the source graphical image, and wherein the operations further comprise recalculating the resultant color at each vertex of the plurality of vertices and resetting a diffused pixel color for each pixel of a plurality of pixels.

Assignments (2)
CHANGE OF NAME Recorded Mar 6, 2019
From: ADOBE SYSTEMS INCORPORATED
To: ADOBE INC.
Reel/Frame 048525/0042 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 18, 2017
From: PHOGAT, ANKIT; BATRA, VINEET; KAVIDAYAL, MRIDUL
To: ADOBE SYSTEMS INCORPORATED
Reel/Frame 043614/0583 →