The technology described in this patent document relates generally to computer-based image and graphic processing, such as on-line photo processing systems.
Traditional providers of graphic design products (e.g., greeting cards, business cards, flyers, brochures) offer a limited number of designs generated by in-house creators or paid third party contractors. Limited customizations may be available for these design products, such as the incorporation of a corporate logo onto business cards or the inclusion of a photograph onto a greeting card. While the designs provided may be appropriate for many applications and occasions, the limited number of parties having creative input may result in a too-rigid environment that does not offer sufficient options for conveying certain messages.
Thus, there is a need for a graphics design system that offers consumers the capability to create and/or customize graphic designs according to their communications needs. There is also a need for a system where those consumer-created designs can be shared among the population of consumers, thus increasing the creative talent pool for graphic design.
In accordance with the teachings described herein, systems and methods are provided for generating a graphical design having one or more embedded images for purchase over a computer network. An example system may include a processing system, a template database for storing a plurality of graphical templates, and an image processing application stored in a memory device and executable by the processing system. When executed, the image processing application may be configured to: receive one or more digital images over the computer network for inclusion in the graphical design; receive input to select a design category; receive, based on the selected design category, a set of graphical templates from the plurality of graphical templates stored in the template database; embed the one or more digital images in each graphical template in the set of graphical templates to generate a plurality of candidate graphical designs; display the plurality of candidate graphical designs simultaneously on a user interface; and receive input to select one of the plurality of candidate graphical designs.
An example computer-implemented method for generating a graphical design having one or more embedded images for purchase over a computer network may include: receiving one or more digital images over the computer network for inclusion in the graphical design; receiving input to select a design category; receiving a set of graphical templates from a plurality of stored graphical templates based on the selected design category; embedding the one or more digital images in each graphical template in the set of graphical templates to generate a plurality of candidate graphical designs; displaying the plurality of candidate graphical designs simultaneously on a user interface; and receiving input to select one of the plurality of candidate graphical designs.
As illustrated in
As an example, if a user uploads a digital photograph 102 to the system 100 and selects a Holiday card category, then the system 100 may automatically select a plurality of Holiday card templates and embed the photograph 102 within each template to generate a plurality of Holiday card designs for simultaneous display 108. In another example, a user may upload an image 102 of a business logo to the system 100 and select a business card category. The system 100 may then automatically select a plurality of business card templates 114, and embed the business logo into the templates to generate a plurality of business card designs for simultaneous display 108.
In one example, the plurality of graphical designs may be displayed, with the embedded image(s), on a user interface to enable a user to select a graphical design 110 for further processing. For instance, upon selecting one of the displayed designs, the user may be able to perform one or more image processing operations on the graphical design (e.g., cropping, color adjustment, cropping, zooming, etc.), personalize the design (e.g., by adding text, changing the color configuration, etc.) and/or add the design to a virtual shopping cart for purchase. An example of a user interface 200 for displaying a plurality of graphical designs with an embedded image(s) is illustrated in
The example user interface 200 illustrated in
Also illustrated in the example user interface 200 of
The example user interface 200 shown in
With reference to
With reference again to
The processed image 308 is then embedded into multiple design templates by system block 310, such that the same image(s) is included in each of a plurality of different graphical designs. The plurality of designs may be generated using stored templates 312 that include one or more slots for embedding image data. For instance, a set of template data 313 may be selected from a template database 312, as described above with reference to
The plurality of graphical designs, each with the same embedded image(s), is displayed by system block 314 to enable a user to simultaneously review the designs and select one or more particular designs for further processing. For instance, system block 314 may provide a user interface, such as the one shown in
The selected design(s) 316 may then be passed to block 318 for further image processing. For instance, the design 316 may be customized by adding or modify text, modifying the color scheme, moving design elements around on the design, adding backs, interiors or accessories to the design, or otherwise modifying the appearance of the design. In addition, one or more of the image processing functions from pre-processing block 306 may again be provided at block 318 to enable further image processing operations, such as color adjustment, red-eye correction, cropping, etc. The final design(s) may then be purchased and delivered to the client by system block 320. For instance, system block 320 may include a virtual shopping cart application that enables a user at the client to securely provide payment and delivery information to the server. A virtual shopping cart application 320 may, for example, verify the user's purchase information, authorize the purchase (e.g., by contacting an identified financial institution) and provide the purchased design 322 for download, printing or other means of delivery to the client.
A plurality of graphical designs are generated at 506 by embedding the uploaded image(s) into one or more predefined slots in a set of design templates, such that each of the plurality of graphical designs includes the same image(s) within different design templates. The plurality of graphical designs are then displayed simultaneously at 508, such that the user may visually inspect all of the plurality of graphical designs at the same time. One or more of the displayed graphical designs is then selected by a user at 510 for customization, viewing details and/or other image processing.
This written description uses examples to disclose the invention, including the best mode, and also to enable a person skilled in the art to make and use the invention. The patentable scope of the invention may include other examples that occur to those skilled in the art.
It is further noted that the systems and methods described herein may be implemented on various types of computer architectures, such as for example on a single general purpose computer or workstation, or on a networked system, or in a client-server configuration, or in an application service provider configuration.
Additionally, the methods and systems described herein may be implemented on many different types of processing devices by program code comprising program instructions that are executable by the device processing subsystem. The software program instructions may include source code, object code, machine code, or any other stored data that is operable to cause a processing system to perform methods described herein. Other implementations may also be used, however, such as firmware or even appropriately designed hardware configured to carry out the methods and systems described herein.
The systems' and methods' data (e.g., associations, mappings, etc.) may be stored and implemented in one or more different types of computer-implemented ways, such as different types of storage devices and programming constructs (e.g., data stores, RAM, ROM, Flash memory, flat files, databases, programming data structures, programming variables, IF-THEN (or similar type) statement constructs, etc.). It is noted that data structures describe formats for use in organizing and storing data in databases, programs, memory, or other computer-readable media for use by a computer program.
The systems and methods may be provided on many different types of computer-readable media including computer storage mechanisms (e.g., CD-ROM, diskette, RAM, flash memory, computer's hard drive, etc.) that contain instructions for use in execution by a processor to perform the methods' operations and implement the systems described herein.
The computer components, software modules, functions, data stores and data structures described herein may be connected directly or indirectly to each other in order to allow the flow of data needed for their operations. It is also noted that a module or processor includes but is not limited to a unit of code that performs a software operation, and can be implemented for example as a subroutine unit of code, or as a software function unit of code, or as an object (as in an object-oriented paradigm), or as an applet, or in a computer script language, or as another type of computer code. The software components and/or functionality may be located on a single computer or distributed across multiple computers depending upon the situation at hand.