CN111047666A - Unified digital content selection system for vector graphics and raster graphics - Google Patents

Unified digital content selection system for vector graphics and raster graphics Download PDF

Info

Publication number
CN111047666A
CN111047666A CN201910684659.6A CN201910684659A CN111047666A CN 111047666 A CN111047666 A CN 111047666A CN 201910684659 A CN201910684659 A CN 201910684659A CN 111047666 A CN111047666 A CN 111047666A
Authority
CN
China
Prior art keywords
grid
vector
graphics
selection representation
digital
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910684659.6A
Other languages
Chinese (zh)
Inventor
R·T·沃里特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Adobe Inc
Original Assignee
Adobe Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US16/379,252 external-priority patent/US11314400B2/en
Application filed by Adobe Systems Inc filed Critical Adobe Systems Inc
Publication of CN111047666A publication Critical patent/CN111047666A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04806Zoom, i.e. interaction techniques or interactors for controlling the zooming operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/56Particle system, point based geometry or rendering

Abstract

Embodiments of the present disclosure relate to a unified digital content selection system for vector graphics and raster images. A unified digital image selection system for selecting and editing both vector graphics and grid graphics together is described. In one example, a first user input is received that selects a region of a digital image. In response to the first user input, a vector selection representation of at least a portion of the vector graphics included in the selected region is generated. A grid selection representation of at least a portion of the grid pattern included in the selected region is also generated in response to the first user input. A second user input specifying a digital image editing operation is also received. In response to a second user input, the vector selection representation and the grid selection representation both use a numeric editing operation. The digital image is then displayed with the edited vector selection representation and the edited grid selection representation.

Description

Unified digital content selection system for vector graphics and raster graphics
Cross Reference to Related Applications
The present application claims priority from U.S. provisional patent application No. 62/745,121 entitled "Unified Digital content Selection System for Vector and Raster Graphics" filed on 12.10.2018 and U.S. non-provisional patent application No. 16/379,252 entitled "Unified Selection Model for Vector and Raster Graphics" filed on 9.4.2019, the entire disclosures of which are incorporated herein by reference.
Technical Field
The present disclosure relates to digital media image editing, and more particularly to a unified digital content selection system for vector graphics and raster graphics.
Background
The digital image creation application may be configured to generate a wide variety of graphical elements as part of creating the digital image, examples of which include vector graphics and raster graphics. Vector graphics, for example, may be used to support shapes that have smooth edges when rendered in a user interface, regardless of the degree of zoom applied to the shape. To this end, the vector graphics are mathematically defined (e.g., using Bezier curves) and then plotted against a particular zoom level of the user interface. On the other hand, the grid pattern is defined using a matrix representing a substantially rectangular grid of pixels, for example as a bitmap. Grid graphics are commonly used for digital photographs and to create visual effects, such as mimicking the look of a pencil, brush stroke, spray painting, and the like.
However, conventional digital image creation applications do not address vector and grid graphic editing functionality together. In contrast, conventional digital image creation applications implement separate toolsets to select and edit vector and grid graphics. For vector graphics, conventional applications rely on selection tools to select and modify the underlying mathematical structure of the vector graphics (e.g., to select and move control points of a bezier curve) and are not available to select pixels directly. On the other hand, for grid graphics, conventional applications employ a selection tool to directly select pixels, but are not available for vector graphics. Thus, conventional digital image creation applications require a user to interact with and learn many separate tools, which is inefficient in terms of both user and computing and leads to user frustration.
Disclosure of Invention
A unified digital image selection system for selecting and editing vector graphics and grid graphics together is described that overcomes the limitations of conventional techniques that rely on separate tools and applications. In one example, a first user input is received that selects a region of a digital image. In response to the first user input, a vector selection representation of at least a portion of the vector graphics included in the selected region is generated. A grid selection representation of at least a portion of the grid pattern included in the selected region is also generated in response to the first user input.
A second user input specifying a digital image editing operation is also received. In response to a second user input, the vector selection representation and the grid selection representation both use a numeric editing operation. The digital image is then displayed with the edited vector selection representation and the edited grid selection representation.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. Thus, this summary is not intended to identify essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
Drawings
Specific embodiments are described with reference to the accompanying drawings. The entities represented in the figures may indicate one or more entities and thus may be referred to interchangeably in the discussion as single or plural forms.
FIG. 1 is an illustration of an environment in an example implementation that is operable to employ the unified digital image selection and editing techniques for vector graphics and grid graphics described herein.
FIG. 2 depicts a system in an example implementation that illustrates operation of the graph selection module of FIG. 1 in greater detail.
FIG. 3 is a flow diagram depicting a procedure in an example implementation in which a single user input selecting a region of a digital image is used as a basis for selecting and editing vector graphics and grid graphics included in the selected region.
FIG. 4 depicts an example implementation of generating a grid graphic as part of a digital image using the digital image creation application of FIG. 1.
FIG. 5 depicts an example implementation of generating a vector graphic as part of a digital image using the digital image creation application of FIG. 1.
FIG. 6 depicts an example implementation of a selected region comprising a portion of the grid pattern of FIG. 4.
FIG. 7 depicts an example implementation in which a selected area of a portion of the grid pattern of FIG. 6 is deleted and another selected area comprises a portion of a vector pattern.
FIG. 8 depicts an example implementation in which a selected region includes both a portion of a grid graphic and a portion of a vector graphic, and in which a visualization of the selected region corresponds to the vector graphic.
FIG. 9 depicts an example implementation in which a selected region includes both a portion of a grid graphic and a portion of a vector graphic, and in which a visualization of the selected region corresponds to the grid graphic.
FIG. 10 depicts an example implementation in which a selected region includes both a portion of a grid graphic and a portion of a vector graphic that are deleted together using a digital editing operation.
FIG. 11 depicts an example implementation in which a selected region includes a portion of a grid graphic that is moved using a digital editing operation.
FIG. 12 depicts an example implementation in which a selected region includes a portion of vector graphics that is moved using a digital editing operation.
FIG. 13 depicts an example implementation in which selected regions are used to transform grid graphics and vector graphics.
FIG. 14 depicts an example implementation in which selected regions are used to constrain locations at which digital editing operations will be performed to add vector graphics and/or grid graphics to a digital image.
FIG. 15 depicts an example implementation in which a selected region is specified based on a color value of a pixel.
Fig. 16 illustrates an example system including various components of an example device that may be implemented as any type of computing device as described and/or utilized with reference to fig. 1-15 to implement embodiments of the techniques described herein.
Detailed Description
SUMMARY
Conventional digital image creation applications use separate functionality to address vector graphics and grid graphics. Vector graphics are mathematically defined, for example, using control points connected by curves to form shapes, polygons, and the like. Each of these control points is defined on the X/Y axis and is used to determine the direction of the path by using knobs (handles). The curve may also have defined attributes including stroke color, shape, curvature, thickness, fill, and the like. Bezier curves are examples of the type of parametric curves used to define vector graphics. For example, bezier curves may be used to model smooth curves that may be infinitely scaled. The curves may be joined together, which is referred to as a path. Vector graphics can be found in a variety of graphics file formats, examples of which include Scalable Vector Graphics (SVG), encapsulated postscript (eps), and Portable Document Format (PDF).
On the other hand, the grid pattern is implemented as a bitmap having a dot matrix data structure, which represents a substantially rectangular pixel grid. A bitmap (i.e., a single-bit grid) corresponds to the graphic displayed by the display device bit-by-bit. The grid pattern is typically characterized by the width and height of the pattern in pixels and by the number of bits per pixel or color depth, which determines the number of colors represented. The raster graphics can be found in various graphics file formats, examples of which include Joint Photographic Experts Group (JPEG), Portable Network Graphics (PNG), Animated Portable Network Graphics (APNG), Graphics Interchange Format (GIF), Moving Picture Experts Group (MPEG)4, and so forth.
Therefore, it is apparent that the basic structure of the vector graphic is very different from that of the grid graphic. In view of this, conventional digital image editing operations support different functionality for selecting and editing vector graphics as compared to raster graphics. For example, for vector graphics, conventional applications rely on path selection tools to select and modify the underlying mathematical structure of the vector graphics (e.g., select and move control points of a bezier curve) and are not available to select pixels directly. On the other hand, for grid graphics, conventional applications employ direct selection tools to directly select pixels, but are not available for vector graphics. Thus, conventional digital image creation applications require a user to interact with and learn many separate tools, which is inefficient in terms of both user and computing and leads to user frustration.
Thus, techniques and systems are described that support uniform selection and editing of vector and grid graphics by digital image creation applications. In one example, the digital image creation application receives a user selection of a representation of a graphical selection tool, such as a "lasso" to specify a region within a specified boundary, a "magic wand" to select an adjacent color within a threshold amount of the selected region, a bounding box, and so forth. The digital image creation application also receives another user input to select a region within the digital image displayed in the user interface by the display device, e.g., a region that is less than the entire digital image.
In response to the selection of the region, the digital image creation application generates a vector selection representation and a separate grid selection representation. For example, the vector selection module may be employed by a digital image creation system to generate and store (e.g., in a computer-readable storage medium) a vector selection representation of a portion of any vector graphics included within the selected region. For example, the vector graphics representation may be formed to include control points and curves of the vector graphics, which are included within the selected region, as well as defined properties of the curves such as stroke color, shape, curvature, thickness, fill, and the like.
A grid selection module is also employed to generate a grid selection representation that includes pixels of a grid pattern included in the selected region. The grid selection module may, for example, generate a gray grid mask in which white pixels indicate pixels that are to be included in their entirety as part of a selected region from the digital image, black pixels indicate digital pixels that are not to be included in the selected region, and gray pixels indicate a corresponding amount of pixels (i.e., pixel colors) that are to be included in the selected region to support a mixed region.
In this manner, the digital image creation module maintains separate graphical representations included in the selected area in response to a single user input and by using a single selection tool, which can then be edited using digital editing operations. For example, the digital image creation module may support movement or deletion of both vector and grid selection representations within a digital image together using a single operation. In another example, the digital image creation module also supports masking operations, where selected regions are used to contain the effects of digital image operations within the regions, such as to draw vector and raster graphics.
In yet another example, the digital image creation module also supports transformation of the vector and grid selection representations, e.g., to change color, size, rotation, and the like. For example, user input may be received to increase the scale of the selected region. In response, the digital image creation application scales a portion of the vector graphics within the selected region using the base mathematical representation. The digital image creation application also upsamples the portions of the grid pattern that are included in the grid selection representation. In this manner, the digital image creation application can synchronize digital editing operations to the two representations as needed, using a unified input structure that maintains the underlying functionality of vector and grid graphics, which is not possible in conventional techniques.
In one implementation, a digital image creation application supports grid-based previews of vector graphics to support real-time performance before submission to a vector representation. For example, input may be received to draw a vector graphic that is initially displayed as a grid graphic until the stroke is completed and then converted to a control point of the vector graphic. This supports real-time output of graphics and increases computational efficiency, especially when combined with multiple curves and paths as part of a union or subtraction operation. Further discussion of these and other examples is included in the following sections and is shown in the corresponding figures.
In the following discussion, an example environment is first described in which the techniques described herein may be employed. Example procedures are then described which may be executed in the example environment, as well as other environments. Thus, execution of the example processes is not limited to the example environment, and the example environment is not limited to execution of the example processes.
Example Environment
FIG. 1 is an illustration of a digital media environment 100 in an example implementation that is operable to employ techniques described herein. The illustrated environment 100 includes a computing device 102 that may be configured in various ways.
For example, the computing device 102 may be configured as a desktop computer, a laptop computer, a mobile device (e.g., assuming a handheld configuration such as a tablet computer or mobile phone as illustrated), and so forth. Thus, the computing device 102 may range from a full resource device with substantial memory and processor resources (e.g., personal computers, game consoles) to a low-resource device with limited memory and/or processing resources (e.g., mobile devices). Additionally, although a single computing device 102 is shown, the computing device 102 may represent multiple different devices, such as multiple servers utilized by an enterprise to perform operations "on the cloud," as described in fig. 16.
Computing device 102 is illustrated as including a digital image creation application 104. The digital image creation application 104 is implemented at least in part in hardware of the computing device 102 to process and transform a digital image 106, the digital image 106 illustrated as being maintained in storage 108 of the computing device 102. Such processing includes creating a digital image 106, modifying the digital image 106, and rendering the digital image 106 in a user interface 110 for output by, for example, a display device 112. Although illustrated as being implemented locally at the computing device 102, the functionality of the digital image creation application 104 may also be implemented in whole or in part via functionality available over the network 114, such as part of a web service or "in the cloud.
An example of the functionality incorporated by the digital image creation application 104 to process the image 106 is illustrated as a graphics selection module 116. The graphic selection module 116 supports unified digital image selection and editing of the vector graphic 118 and the grid graphic 120 included within the digital image 106 through the use of a corresponding vector selection module 122 and grid selection module 124.
Vector graphics 118 are mathematically defined using two-dimensional points (e.g., control points) connected by curves to form shapes, polygons, and the like. Each of these control points is defined on the X/Y axis and is used to determine the direction of the path by using the control keys. The curve may also have defined attributes including stroke color, shape, curvature, thickness, fill, and the like. An example vector graphic 126 is illustrated as being displayed in the user interface 110 by the display device 112.
The grid pattern 120, on the other hand, is implemented as a bitmap having a dot matrix data structure, which represents a substantially rectangular grid of pixels. The grid graphic is typically used to capture a photograph by a digital camera, and an example grid graphic 128 is illustrated as being displayed by the display device 112 in the user interface 110. The grid pattern 120 is typically characterized by the width and height of the pattern in pixels and the number of bits per pixel or color depth, which determines the number of colors represented.
Because of the differences between the vector graphic 118 and the grid graphic 120, conventional digital image creation applications that support both vector and grid graphic editing do not equally support both types of graphics and do not support a single selection model. In contrast, conventional applications force users to edit vector and grid graphics using separate selection and drawing tools. In one conventional example where the application is pixel-based (e.g., for editing digital photographs), a selection tool selects pixels on a grid level, where a path selection tool is used to select control points of a bezier curve for vector graphics. In this conventional example, grid selection cannot be used on vector graphics, and the operations available to edit grid selection are different than the operations available to edit vector selection. In another conventional example, an application utilizes vector graphics to produce illustrations such as logos, clip art, and the like. In this conventional example, the application does not support pixel-level selection and editing commands, and thus forces the user to switch to a different application to do so. Thus, conventional digital image creation applications are uncooperative and inefficient, computationally inefficient with respect to using multiple applications and tools, and also user inefficient as it can be frustrating to require a user to learn and implement these separate tools.
Thus, in the techniques described herein, the graphic selection module 116 supports a unified digital image selection system that supports the selection and editing of vector graphics 118 and grid graphics 120 together. For example, user input may be received by the graphical selection module 116, which selects a representation of the graphical selection tool 130, e.g., "lasso" in the illustrated example. Another user input is then received to select a region within the digital image, which causes the vector selection module 122 and the grid selection module 124 to generate separate representations that are maintained in memory of the computing device 102. The selected area may be visualized in a number of ways, including "travelling ants" (e.g., moving dashed line boundaries), painted coverings, "onion skins," and so forth.
The representation of the vector graphic 118 maintains the underlying mathematical structure and thus has infinite resolution, while the representation of the grid graphic includes pixels from the selected region and thus has the same resolution as the underlying graphic. The digital editing operations implemented by editing the selected region using tools or commands are applied in parallel by the graphic selection module 116 to both representations, and thus the edits for both types of graphics are synchronized. The selected region may also act as a mask to support drawing within the region, where the grid pattern is masked using a mixed mode and the vector pattern is masked using a plan view. The graphic selection module 116 may also support the functionality of converting the vector graphic 118 to a grid graphic 120 via rasterization or converting the grid graphic 120 to the vector graphic 118 via curve fitting. Further discussion of these and other examples is included in the following sections.
In general, the functionality, features and concepts described with respect to the above and following examples may be employed in the context of the example processes described below. Furthermore, the functionality, features, and concepts described with respect to the different figures and examples in this document may be interchanged with one another and are not limited to implementation in the context of a particular figure or process. Furthermore, the blocks herein associated with different representation processes and corresponding figures may be applied together and/or combined in different ways. Thus, the various functionalities, features and concepts described herein with respect to different example environments, devices, components, figures and processes may be used in any suitable combination and are not limited to the particular combination represented by the examples listed in this specification.
Unified selection and editing of vector graphics and grid graphics
FIG. 2 depicts a system in an example implementation that illustrates operation of the graph selection module of FIG. 1 in greater detail. FIG. 3 depicts a procedure 300 in an example implementation in which a single user input selecting a region of a digital image is used as a basis for selecting and editing vector and/or grid graphics included in the selected region.
The following discussion describes techniques that may be implemented with the previously described systems and devices. Aspects of each process may be implemented in hardware, firmware, software, or a combination thereof. The procedures are shown as a set of blocks that specify operations performed by one or more devices and are not necessarily limited to the orders shown to perform the operations of the respective blocks. In portions of the following discussion, reference will be made to fig. 1-15.
The example begins by creating a digital image 106 by the digital image creation application 104, the digital image 106 including a vector graphic 118 and a grid graphic 120. As shown in the example implementation 400 of fig. 4, user input is received by the digital image creation application 104 that selects a representation of a grid drawing tool 402 and then draws the grid graphic 120 (e.g., by a gesture or via a cursor control device), the grid graphic 120 being maintained in a dedicated grid layer 404 in the digital image 106.
As shown in the example implementation 500 of fig. 5, the digital image creation application 104 also receives user input selecting a representation of the vector drawing tool 502, and then draws the vector graphics 118 (e.g., by gestures or via a cursor control device), the vector graphics 118 being maintained in a dedicated vector layer 504 in the digital image 106. Thus, at this point, digital image 106 includes vector graphic 118 and grid graphic 120 within a single digital image 106.
To initiate the selection, a user input is received selecting a representation of the graphical selection tool 130, such as a "lasso" in the example 600 illustrated in fig. 6. The selection detection module 202 then receives a first user input 204 selecting a region 206 of the digital image 106 (block 302). In the lasso example illustrated, free-form lines are used to define the outer boundaries of the selected region 206, for example. Once completed, the selection detection module 202 is configured to indicate the selected area, including "traveling ants" (e.g., moving the dashed border), painted overlays, "onion skins," and so on as illustrated. Similar functionality may also be used to define bounding boxes, for example, through the use of a click-and-drag operation using a cursor control device or gestures. Other examples are also contemplated, including smart object selection using a "magic wand" as described further below with respect to fig. 15, and using machine learning to detect objects or object edges. In this manner, the selected region 206 may comprise a portion of the digital image 106 to which a digital editing operation is to be applied.
As previously described, the graphic selection module 126 supports unified selection of the vector graphic 118 and the grid graphic 120 such that a single tool may be used to select and edit the vector graphic 118, the grid graphic 120, or both. Thus, in FIG. 6, the selected region 206 comprises a portion of the grid pattern 120, which is then deleted in a digital editing operation as shown in example 700 of FIG. 7. As also shown in the example 700 of FIG. 7, another selected region 206 includes a portion of the vector graphics 118. Thus, the graphic selection tool 130 may be used for the vector graphic 118 or the grid graphic 120.
The graphic selection tool 130 may also be used to simultaneously select vector and grid graphics within the selected region 206. As shown in the example 800 of FIG. 8, for example, the first user input 204 defines the selected region 206 that includes at least a portion of the vector graphic 118 and at least a portion of the grid graphic 120. According to the vector graphics in fig. 8, the user interface 110 depicts the visualization of the selected region 206 as smooth, whereas in the example 900 of fig. 9, the visualization of the selected region 206 follows a grid of pixels.
Returning again to FIG. 2, in response to the first user input 204, a vector selection representation 208 of at least a portion of the vector graphic 118 included in the selected region 206 is generated by the vector selection module 122 (block 304). For example, the vector selection module 122 may identify control points and curves for the vector graphic 118 that are included within the selected region 206. The portion of the curve that is "cut off" at the edge of the selected region 206 may be recreated using curve fitting.
The vector selection representation 208 also includes defined properties of the vector graphics 118 within the selected region 206, including stroke color, shape, curvature, thickness, fill, and the like. In this manner, the vector selection representation 208 maintains the underlying mathematical structure, and is thus infinitely scalable and preserves the functionality of the vector graphics 118, e.g., to change control points, tortuosity, defined attributes, and so forth.
In response to the first user input, a grid selection representation 210 of at least a portion of the grid pattern 120 included in the selected region is also generated by the grid selection module 124 (block 306). For example, grid selection representation 210 may include pixels from the bitmap that lie within the boundaries of selected region 206. In one example, grid selection representation 210 is generated as a gray grid mask, where white pixels indicate pixels that are to be included in their entirety as part of a selected region from the digital image, black pixels indicate pixels that are not to be included in the selected region, and gray pixels indicate a corresponding amount of pixels (i.e., pixel colors) that are to be included in the selected region 206 to support a blended region.
The vector selection representation 208 and the grid selection representation 210 are stored to a computer-readable storage medium (e.g., memory) of the computing device 102 as a basis for performing digital editing operations. For example, the digital image editing module 212 may receive a second user input 214 specifying a digital image editing operation (block 308). In response to the second user input 214, both the vector selection representation 208 and the grid selection representation 210 are edited together using a numerical editing operation (block 310), thereby generating an edited vector selection representation 216 and an edited grid selection representation 218. The digital image 106 is then displayed with the edited vector selection representation 216 and the edited grid selection representation 218 (block 312).
Various different types of digital editing operations utilizing the selected regions may be performed, examples of which are represented by digital content transformation module 220, digital content masking module 222, and digital content preview module 224. The digital content transformation module 220 may support various transformations. As shown in the example implementation 1000 of FIG. 10, for example, in a first stage 1002, the selected region 206 includes portions of the vector graphic 118 and the grid graphic 120 that are deleted together in a single operation as shown in a second stage 1004.
In the example implementation 1100 of FIG. 11, in a first stage 1102, the selected area 206 includes a portion of the grid pattern 120. In the second stage 1104, the selected region 206 is moved within the digital image, e.g., via a gesture, a click-and-drag operation, etc. In the example implementation 1200 of FIG. 12, in a first stage 1202, the selected region 206 includes a portion of the vector graphic 118. In the second stage 1204, the selected region 206 is moved within the digital image.
In the example implementation 1300 of fig. 13, the resizing and rotation transformation is shown as applied to the selected region 206. In a first stage 1302, a digital image includes a vector graphic 118 and a grid graphic 120. In the second stage 1304, the selected region 206 comprises a portion of the grid pattern 120, which in the illustrated example is resized by upsampling pixels included in the grid selection representation 210 that correspond to the selected region. In the third stage 1306, the selected area 206 includes a portion of the vector graphics 118. A portion of the vector graphic 118 is resized (e.g., a proportional upward adjustment of the spacing of the control points and curves) based on the mathematical structure included in the vector selection representation 208 corresponding to the selected region 206. In this example, the vector selection representation 208 is also rotated relative to the digital image 106. Scaling of the selected region 208 may be performed in a similar manner by down-sampling and proportionally scaling the selected region 206 downward. Other transformations, such as recoloring, that may be implemented by the digital content transformation module 220 are also contemplated.
Fig. 14 depicts an example implementation 1400 in which the selected region 206 is used to constrain the location at which a digital editing operation is to be performed to add vector and/or grid graphics to the digital image 106. In this example, the digital content masking module 222 receives the first user input 204 as defining the selected regions 206 as previously described, which user input 204 may be performed using one or more strokes to form a union, intersection, etc. of the selected regions 206.
The second user input 214 is then used to define the vector graphic 118 or the grid graphic 120 included within the selected region 206, which is "masked" outside of that region within the digital image 106. In this manner, the user may freely draw within the user interface 110 on the digital image 106, wherein inputs that appear within the selected region 206 are added to the digital image 106, and wherein inputs that appear outside the selected region 206 are not added.
FIG. 15 depicts an example implementation 1500 in which a selected region 206 is specified based on a color value of a pixel. In the previous example, the selected region 206 was formed by drawing a boundary (e.g., a free-form line, a bounding box, etc.). However, in some instances, it may be difficult to manually select complex geometries using these tools. In the first stage 1502 of FIG. 15, for example, a designer may wish to select the nose of a tiger. However, manually drawing a bounding box may be difficult to perform accurately. Thus, the selection may also be configured as a "magic wand," where the first user input 204 selects a pixel in the digital image 106. Pixels having color values within a threshold amount, which may be user selectable, are included in the selected region 206 by the selection detection module 202. The selected region 206 (e.g., bitmap) based on pixels may also be used to select portions of the vector graphics 118. This may be performed on a color basis, by curve fitting based on the boundaries of the selected region 206, and so on. For example, an "intelligent selection" tool may be used to detect edges to make it easier for the user to scatter the rendered image and select along the edit. Further, the object of the image may be selected using selection based on machine learning. Similar to the magic wand example above, pixel-based selections from either the smart selection tool or the object selection tool are transformed into an equivalent vector representation. In this manner, the graphic selection module 126 may support various techniques to specify the selected region 206.
Example systems and devices
Fig. 16 illustrates an example system, generally 1600, that includes an example computing device 1602, the example computing device 1602 representing one or more computing systems and/or devices that may implement various techniques described herein. This is illustrated by the inclusion of a graphics selection module 126. The computing device 1602 may be, for example, a server of a service provider, a device associated with a client (e.g., a client device), a system on a chip, and/or any other suitable computing device or computing system.
The example computing device 1602 as illustrated includes a processing system 1604, one or more computer-readable media 1606, and one or more I/O interfaces 1608 communicatively coupled to each other. Although not shown, the computing device 1602 may also include a system bus or other data and command transfer system that couples the various components to one another. A system bus can include any one or combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and/or a processor or local bus that utilizes any of a variety of bus architectures. Various other examples are also contemplated, such as control and data lines.
The processing system 1604 represents functionality to perform one or more operations using hardware. Thus, the processing system 1604 is illustrated as including hardware elements 1610 that can be configured as processors, functional blocks, and the like. This may include implementation in hardware as an application specific integrated circuit or other logic device formed using one or more semiconductors. Hardware elements 1610 are not limited by the materials from which they are formed or the processing mechanisms employed therein. For example, a processor may include semiconductor(s) and/or transistors (e.g., electronic Integrated Circuits (ICs)). In such a context, processor-executable instructions may be electronically-executable instructions.
Computer-readable storage medium 1606 is illustrated as including memory/storage 1612. Memory/storage 1612 represents memory/storage capacity associated with one or more computer-readable media. Memory/storage component 1612 may include volatile media (such as Random Access Memory (RAM)) and/or nonvolatile media (such as Read Only Memory (ROM), flash memory, optical disks, magnetic disks, and so forth). Memory/storage component 1612 may include fixed media (e.g., RAM, ROM, a fixed hard drive, etc.) as well as removable media (e.g., flash memory, a removable hard drive, an optical disk, and so forth). The computer-readable medium 1606 may be configured in various other ways, which are further described below.
Input/output interface(s) 1608 represent functionality that allows a user to enter commands and information to computing device 1602, and that also allows information to be presented to the user and/or other components or devices using a variety of input/output devices. Examples of input devices include a keyboard, a cursor control device (e.g., a mouse), a microphone, a scanner, touch functionality (e.g., a capacitive or other sensor configured to detect physical touch), a camera (e.g., which may employ visible or invisible wavelengths (such as infrared frequencies) to recognize movement from gestures that do not involve touch), and so forth. Examples of output devices include a display device (e.g., a monitor or projector), speakers, a printer, a network card, a haptic response device, and so forth. Thus, the computing device 1602 may be configured in various ways to support user interaction, as described further below.
Various techniques may be described herein in the general context of software, hardware elements, or program modules. Generally, such modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The terms "module," "functionality," and "component" as used herein generally represent software, firmware, hardware, or a combination thereof. The features of the techniques described herein are platform-independent, meaning that the techniques may be implemented on a variety of commercial computing platforms having a variety of processors.
An implementation of the described modules and techniques may be stored on or transmitted across some form of computer readable media. Computer readable media can include a variety of media that can be accessed by computing device 1602. By way of example, and not limitation, computer-readable media may comprise "computer-readable storage media" and "computer-readable signal media".
A "computer-readable storage medium" may refer to media and/or devices that can persistently and/or non-transiently store information in contrast to mere signal transmission, carrier waves, or signals per se. Accordingly, computer-readable storage media refers to non-signal bearing media. Computer-readable storage media include hardware such as volatile and nonvolatile, removable and non-removable media and/or storage devices implemented in methods or technology suitable for storage of information such as computer-readable instructions, data structures, program modules, logic elements/circuits or other data. Examples of computer readable storage media may include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, Digital Versatile Disks (DVD) or other optical storage, hard disks, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or other storage devices, tangible media, or articles of manufacture suitable for storing the desired information and which may be accessed by a computer.
"computer-readable signal medium" may refer to a signal-bearing medium configured to transmit instructions to hardware of computing device 1602, e.g., via a network. Signal media may typically embody computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave, data signal, or other transport mechanism. Signal media also includes any information delivery media. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media.
As previously mentioned, hardware element 1610 and computer-readable medium 1606 represent modules, programmable device logic, and/or fixed device logic implemented in hardware form that may be employed in some embodiments to implement at least some aspects of the techniques described herein, such as to execute one or more instructions. The hardware may include components of integrated circuits or systems on a chip, Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs), Complex Programmable Logic Devices (CPLDs), and other implementations in silicon or other hardware. In this context, hardware may operate as a processing device to perform program tasks defined by instructions and/or logic embodied by the hardware, as well as hardware to store executable instructions, such as the computer-readable storage media previously described.
Combinations of the foregoing may also be employed to implement the various techniques described herein. Thus, software, hardware, or executable modules may be implemented as one or more instructions and/or logic embodied on some form of computer-readable storage medium and/or by one or more hardware elements 1610. The computing device 1602 may be configured to implement particular instructions and/or functions corresponding to software and/or hardware modules. Accordingly, implementations of modules executable by the computing device 1602 as software may be implemented at least in part in hardware, for example, using computer-readable storage media and/or hardware elements 1610 of the processing system 1604. The instructions and/or functions may be executable/operable by one or more articles of manufacture (e.g., one or more computing devices 1602 and/or processing systems 1604) to implement the techniques, modules, and examples described herein.
The techniques described herein may be supported by various configurations of the computing device 1602 and are not limited to the specific examples of the techniques described herein. This functionality may also be implemented, in whole or in part, through the use of a distributed system, such as on a "cloud" 1614 via a platform 1616 as described below.
The cloud 1614 includes and/or represents a platform 1616 for resources 1618. The platform 1616 abstracts underlying functionality of hardware (e.g., servers) and software resources of the cloud 1614. The resources 1618 can include data and/or applications that can be utilized when computer processing is performed on a server that is remote from the computing device 1602. The resources 1618 may also include services provided over the internet and/or over a subscriber network such as a cellular or Wi-Fi network.
The platform 1616 may abstract resources and functionality to connect the computing device 1602 with other computing devices. The platform 1616 may also be used to abstract scaling of resources to provide a corresponding level of scaling to meet the demand for the resources 1618 implemented via the platform 1616. Thus, in interconnected device embodiments, implementation of functionality described herein may be distributed throughout the system 1600. For example, the functionality may be implemented in part on the computing device 1602 and via the platform 1616 that abstracts the functionality of the cloud 1614.
Conclusion
Although the invention has been described in language specific to structural features and/or methodological acts, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as example forms of implementing the claimed invention.

Claims (20)

1. A method implemented by a computing device in a digital media image editing environment, the method comprising:
receiving, by the computing device, a first user input selecting a region of a digital image;
in response to the receipt of the first user input by the computing device, generating:
a vector selection representation of at least a portion of the vector graphics included in the selected region; and
a grid selection representation of at least a portion of the grid pattern included in the selected region;
receiving, by the computing device, a second user input specifying a digital image editing operation;
editing, by the computing device, both the vector selection representation and the grid selection representation using the digital editing operation; and
displaying, by the computing device, the digital image having the edited vector selection representation and the edited grid selection representation.
2. The method of claim 1, wherein the vector selection representation defines the portion of the vector graphic using two-dimensional points connected by at least one curve.
3. The method of claim 2, wherein the at least one curve is a bezier curve and the two-dimensional points are control points of the bezier curve.
4. The method of claim 1, wherein the grid selection representation is masked using a gray scale grid mask and the vector selection representation is masked using a plan view.
5. The method of claim 1, wherein the grid selection representation defines the portion of the grid pattern as pixels using a bitmap.
6. The method of claim 1, wherein the edited vector selection representation is mathematically defined using two-dimensional points connected by a curve, and the edited grid selection representation is defined using a bitmap.
7. The method of claim 1, wherein the digital editing operation causes changes to the underlying mathematical structure of the vector selection representation and to pixels of the grid selection representation.
8. The method of claim 1, wherein the digital editing operation comprises moving the portion of the vector graphics and the portion of the grid graphics within the digital image.
9. The method of claim 1, wherein the digital editing operation comprises a masking operation based on the portion of the vector graphics and the portion of the grid graphics within the digital image.
10. The method of claim 1, wherein the digital editing operation comprises a transformation operation based on the portion of the vector graphics and the portion of the grid graphics within the digital image.
11. The method of claim 10, wherein the transformation operation comprises resizing, rotating, or shading.
12. The method of claim 1, further comprising initially displaying the vector selection representation as an initial pixel, applying the digital editing operation to the portion of the vector graphics in real-time as the second user input is received, and wherein the display of the edited vector selection representation replaces the pixel of the initial display of the vector selection representation.
13. A system in a digital media image editing environment, comprising:
a selection detection module implemented at least in part in hardware of a computing device to detect a first user input as selecting a region of a digital image;
a vector selection module implemented at least in part in hardware of the computing device to generate a vector selection representation of at least a portion of a vector graphic included in the selected region in response to the receipt of the first user input;
a grid selection module implemented at least in part in hardware of the computing device to generate, in response to the receipt of the first user input, a grid selection representation of at least a portion of a grid graphic included in the selected area; and
a digital editing module implemented at least in part in hardware of the computing device to receive a second user input specifying a digital editing operation and to edit both the vector selection representation and the grid selection representation using the digital editing operation in response to the second user input.
14. The system of claim 13, wherein the vector selection representation uses a bezier curve to define the portion of the vector graphic.
15. The system of claim 13, wherein the grid selection representation defines the portion of the grid pattern as pixels using a bitmap.
16. The system of claim 13, wherein the edited vector selection representation is defined at least in part using two-dimensional points connected by a curve, and the edited grid selection representation is defined at least in part using a bitmap.
17. The system of claim 13, wherein the digital editing operation comprises moving the portion of the vector graphics and the portion of the grid graphics within the digital image.
18. The system of claim 13, wherein the digital editing operation comprises a masking operation based on the portion of the vector graphics and the portion of the grid graphics within the digital image.
19. The system of claim 13, wherein the digital editing operation comprises a transformation operation based on the portion of the vector graphics and the portion of the grid graphics within the digital image.
20. A system in a digital media image editing environment, comprising:
means for detecting a first user input as selecting a region of the digital image;
means for generating, in response to the receipt of the first user input, a vector selection representation of at least a portion of a vector graphic included in the selected region;
means for generating, in response to the receipt of the first user input, a grid selection representation of at least a portion of a grid graphic included in the selected region;
means for receiving a second user input specifying a digital editing operation; and
means for editing the vector selection representation and the grid selection representation using the digital editing operation in response to the second user input.
CN201910684659.6A 2018-10-12 2019-07-26 Unified digital content selection system for vector graphics and raster graphics Pending CN111047666A (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862745121P 2018-10-12 2018-10-12
US62/745,121 2018-10-12
US16/379,252 2019-04-09
US16/379,252 US11314400B2 (en) 2018-10-12 2019-04-09 Unified digital content selection system for vector and raster graphics

Publications (1)

Publication Number Publication Date
CN111047666A true CN111047666A (en) 2020-04-21

Family

ID=70161267

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910684659.6A Pending CN111047666A (en) 2018-10-12 2019-07-26 Unified digital content selection system for vector graphics and raster graphics

Country Status (2)

Country Link
CN (1) CN111047666A (en)
AU (1) AU2019213404B2 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040257367A1 (en) * 1999-07-26 2004-12-23 Microsoft Corporation Mixed but indistinguisable raster and vector image data types
US20050104894A1 (en) * 2000-06-06 2005-05-19 Microsoft Corporation System and method for providing vector editing of bitmap images
US7385612B1 (en) * 2002-05-30 2008-06-10 Adobe Systems Incorporated Distortion of raster and vector artwork
US20150207997A1 (en) * 2012-07-23 2015-07-23 Adobe Systems Incorporated Fill With Camera Ink
US20170295361A1 (en) * 2016-04-12 2017-10-12 Apple Inc. Method and system for 360 degree head-mounted display monitoring between software program modules using video or image texture sharing

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040257367A1 (en) * 1999-07-26 2004-12-23 Microsoft Corporation Mixed but indistinguisable raster and vector image data types
US20050104894A1 (en) * 2000-06-06 2005-05-19 Microsoft Corporation System and method for providing vector editing of bitmap images
US7385612B1 (en) * 2002-05-30 2008-06-10 Adobe Systems Incorporated Distortion of raster and vector artwork
US20150207997A1 (en) * 2012-07-23 2015-07-23 Adobe Systems Incorporated Fill With Camera Ink
US20170295361A1 (en) * 2016-04-12 2017-10-12 Apple Inc. Method and system for 360 degree head-mounted display monitoring between software program modules using video or image texture sharing

Also Published As

Publication number Publication date
AU2019213404B2 (en) 2021-08-19
AU2019213404A1 (en) 2020-04-30

Similar Documents

Publication Publication Date Title
US11314400B2 (en) Unified digital content selection system for vector and raster graphics
US11049307B2 (en) Transferring vector style properties to a vector artwork
US10410317B1 (en) Digital image transformation environment using spline handles
US10943375B2 (en) Multi-state vector graphics
AU2016262789B2 (en) 3d modeling by tracing 2d image ui
US10846889B2 (en) Color handle generation for digital image color gradients using machine learning
US11475617B2 (en) Path-constrained drawing with visual properties based on drawing tool
CN104732479A (en) Resizing An Image
US11455752B2 (en) Graphical element color diffusion techniques
US9955065B2 (en) Dynamic motion path blur user interface
US10403040B2 (en) Vector graphics rendering techniques
US10043233B1 (en) Digital media environment for processing vector objects of vector artwork
US9779484B2 (en) Dynamic motion path blur techniques
US20230162413A1 (en) Stroke-Guided Sketch Vectorization
US10573033B2 (en) Selective editing of brushstrokes in a digital graphical image based on direction
AU2019213404B2 (en) Unified selection model for vector and raster graphics
US11348287B2 (en) Rendering of graphic objects with pattern paint using a graphics processing unit
CN114332339A (en) System for coloring vector objects
US20220301263A1 (en) Digital Object Surface Inflation
US20230267696A1 (en) Responsive Video Canvas Generation
US10586361B2 (en) Mesh art positioning techniques as part of digital content creation
Bergamasco et al. Saliency-driven Variational Retargeting for Historical Maps

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination