This specification contains material that is subject to copyright protection. The copyright owner has no objection to the reproduction of this specification or related materials from associated office files for the purposes of review, but otherwise reserves all copyright whatsoever.
The present invention relates generally to graphical image generation and, in particular, to a graphical design system based upon templates and rules. The present invention also relates to a method and apparatus for graphical design, and to a computer program product including a computer readable medium having recorded thereon a computer program for graphical design.
Many computer-implemented products presently on the market allow a user to create an artistic presentation. These products are usually categorised into two groups, those being advanced artistic design tools and simple presentive design tools. The former allows the user to design a sophisticated graphical appearance. However, this kind of tool requires that the user have reasonable knowledge of graphic design and extensive experience with the tools. People who use this kind of tool are typically professional artists, for example, web designers who design a graphic interface for delivery to an end user, who typically accesses the interface via a browser application operating over the
This application claims the right of priority under 35 U.S.C. § 119 based on Australian Application No. 2003902954, filed Jun. 12, 2003, which is incorporated by reference herein in its entirety as if fully set forth herein.
This specification contains material that is subject to copyright protection. The copyright owner has no objection to the reproduction of this specification or related materials from associated office files for the purposes of review, but otherwise reserves all copyright whatsoever.
The present invention relates generally to graphical image generation and, in particular, to a graphical design system based upon templates and rules. The present invention also relates to a method and apparatus for graphical design, and to a computer program product including a computer readable medium having recorded thereon a computer program for graphical design.
Many computer-implemented products presently on the market allow a user to create an artistic presentation. These products are usually categorised into two groups, those being advanced artistic design tools and simple presentive design tools. The former allows the user to design a sophisticated graphical appearance. However, this kind of tool requires that the user have reasonable knowledge of graphic design and extensive experience with the tools. People who use this kind of tool are typically professional artists, for example, web designers who design a graphic interface for delivery to an end user, who typically accesses the interface via a browser application operating over the World Wide Web. The end user in such an instance is not in a position to make the changes to the graphical design when such is delivered.
On the other hand, the second category of product is a simple presentive design tool that targets the inexperienced user to create simple presentations. This kind of product usually provides a set of the simple presentation templates. The user can modify or contribute to the template with simple items, for example, by typing in text in a text block forming part of the template. The disadvantage of this kind of tool is the lack of an ability to develop advanced graphics commonly found in the formerly described products.
It is an object of the present invention to substantially overcome, or at least ameliorate, one or more disadvantages of existing arrangements through provision of a system that balances the needs of the advanced graphical designers and simple users.
According to a first aspect of the present disclosure, there is provided a graphical representation formed of at least one template having a plurality of graphical objects arranged in a predetermined number of rendering layers spanning a geometric space, at least one of said layers having user-alterable parameters and incorporating at least one multiply instantiated user-definable graphical object distributed upon said at least one layer according to application of said parameters to a plurality of presentation rules.
According to a second aspect of the present disclosure, there is provided a method for forming a graphical representation from a template having a plurality of graphical objects arranged in a predetermined number of rendering layers spanning a geometric space, said method comprising the steps of:
According to a third aspect of the present disclosure, there is provided a method of decorating a geometric space, said method comprising the steps of:
According to another aspect of the present disclosure, there is provided an apparatus for implementing any one of the aforementioned methods.
According to another aspect of the present disclosure there is provided a computer program product including a computer readable medium having recorded thereon a computer program for implementing any one of the methods described above.
Other aspects of the invention are also disclosed.
One or more embodiments of the present invention will now be described with reference to the drawings and appendices, in which:
FIGS. 1(a) and 1(b) show a flowchart depicting operation of an artwork system according to the present disclosure;
Appendix A is an example of an artwork file containing decorative effect reference information;
Appendix B is an example a very simple sample of a script document; and
Appendix C is an example of a decorative effect file which is referenced by the artwork file of Appendix A; and
Appendix D is an example of an album file.
1.0 Overview and Hardware Configuration
The method of graphical design to be described is preferably practiced using a general-purpose computer system 900, such as that shown in
The computer system 900 is formed by a computer module 901, input devices such as a keyboard 902 and mouse 903, output devices including a printer 915, a display device 914 and loudspeakers 917. A Modulator-Demodulator (Modem) or network transceiver device 916 is used by the computer module 901 for communicating to and from a communications network 920, for example connectable via a telephone line 921 or other functional medium. The modem 916 can be used to obtain access to the Internet, and other network systems, such as a Local Area Network (LAN) or a Wide Area Network (WAN), and may be incorporated into the computer module 901 in some implementations.
The computer module 901 typically includes at least one processor unit 905, and a memory unit 906, for example formed from semiconductor random access memory (RAM) and read only memory (ROM). The module 901 also includes a number of input/output (I/O) interfaces including an audio-video interface 907 that couples to the video display 914 and loudspeakers 917, an I/O interface 913 for the keyboard 902 and mouse 903 and optionally a joystick (not illustrated), and an interface 908 for the modem 916 and printer 915. In some implementations, the modem 916 may be incorporated within the computer module 901, for example within the interface 908. A storage device 909 is provided and typically includes at least one hard disk drive 910 and a floppy disk drive 911. A magnetic tape drive (not illustrated) may also be used. A CD-ROM drive 912 is typically provided as a non-volatile source of data. The components 905 to 913 of the computer module 901, typically communicate via an interconnected bus 904 and in a manner which results in a conventional mode of operation of the computer system 900 known to those in the relevant art. Examples of computers on which the described system can be practised include IBM-PC's and compatibles, Sun Sparcstations or alike computer systems evolved therefrom.
Typically, the application program is resident on the hard disk drive 910 and read and controlled in its execution by the processor 905. Intermediate storage of the program and any data fetched from the network 920 may be accomplished using the semiconductor memory 906, possibly in concert with the hard disk drive 910. In some instances, the application program may be supplied to the user encoded on a CD-ROM or floppy disk and read via the corresponding drive 912 or 911, or alternatively may be read by the user from the network 920 via the modem device 916. Still further, the software can also be loaded into the computer system 900 from other computer readable media. The term “computer readable medium” as used herein refers to any storage or transmission medium that participates in providing instructions and/or data to the computer system 900 for execution and/or processing. Examples of storage media include floppy disks, magnetic tape, CD-ROM, a hard disk drive, a ROM or integrated circuit, a magneto-optical disk, or a computer readable card such as a PCMCIA card and the like, whether or not such devices are internal or external of the computer module 901. Examples of transmission media include radio or infra-red transmission channels as well as a network connection to another computer or networked device, and the Internet or Intranets including e-mail transmissions and information recorded on Websites and the like.
The described methods of graphical design may alternatively or additionally be implemented in dedicated hardware such as one or more integrated circuits performing the functions or sub functions of graphical design. Such dedicated hardware may include graphic processors, digital signal processors, or one or more microprocessors and associated memories.
2.0 Terminology
Before describing the graphical design system of the present disclosure, it is appropriate to clarify a number of terms to be used:
Album: An album is a file saved onto the storage device by the user. An album is preferably formed by a hierarchical data structure that describes the user's changes (inputs) into the designated system. Using such a structure, the system can restore these user's inputs when it restarts. Use of the terms album and album file may be interchanged. An example of an album file is provided in Appendix D.
Album Data Tree: A hierarchical memory data structure that represents the changes the user makes through the system. The tree data includes target items, item-associated artwork data and decorative effect data changed by the user. The tree may also be constructed from an album file, upon which the changes can be made.
Artwork File: An artwork comprises of a collection of the structural data that defines a combination of geometric objects (eg. shapes or outlines) and various attributes (eg. the fill colours) of those objects and/or the collection. These various geometric objects may serve different purposes. For example, a square geometric object may be used as a graphical boundary. On the other hand, a group of geometric objects may construct, say, the living objects, such as flowers and animals. A color attribute may be used to define a color characteristics of the objects, for example, a yellow flower and a blue square. Artwork may also contain a set of optional colors for a geometric object. This provides the functionality for creating an object with various versions of colours without replicating the same artwork data structure. Artwork may also define a pattern of geometric objects, for example, replicating of circles. Beyond geometric shapes and colours, artwork may define data for more sophisticated purposes. For example, an artwork may be used as a frame for a display object, such as a photo or the text. It may be used to define a space, for example, a background. Artwork may be saved as an external media object (eg. a file) on any storage device and may be opened for (re)use at a later stage. Certain arrangements of artwork may be used to define standard or predetermined templates.
Clipart: A clipart is an artwork, specially used to define foreground art object(s) as remnants.
Decorative Artwork: Decorative artwork is artwork that contains geometric objects (usually shapes) and which is associated with a decorative effect by way of a file path of a decorative effect file being an attribute of the artwork, and each of the geometric objects containing a flag indicating that the object has the decorative effect applied to it. Appendix A shows a sample of a decorative artwork file.
Decorative Effect: Synonymous with Particle Effect (see below) used in the context of the hosting software.
Decorative Effect File: A decorative effect file incorporates a collection of the hierarchical data structure that defines the decorative effect characteristics (attributes) with which effect rules are applied to a given geometric space. Appendix C shows a sample of a decorative effect file.
Decorative (Graphical) Object: A visual image object used in the decorative effect.
Decorative Space: A geometric space in which decorative graphical objects are laid out based on the rules which govern the relationship between the decorative objects in the space as well as the relationship between the decorative objects and a boundary of the space.
Geometric (Boundary) Space: A geometric outline (or shape).
Effect Library (EL): A library of various visual effects applicable to graphical objects. Examples of such effects include the particle effect, the image effect, the ripple effect, the transform effect, the fill effect and the knotwork effect. Such effects may be generated according to the principles disclosed in the following published specifications:
Particle Effect: One of the effects preferably contained in the effects library referred to above and described in the referenced publications. Particle effect defines various rules to distribute graphical images in and/or onto the boundary space with constraint data, for example, a size constraint.
Template: A template is a set of one or more pre-defined structural data files, generally including an artwork file and a referenced decorative effect file. Initially, specialist artists design the templates to make the best design from the artistic perspective. These artist-designed templates are then able to be readily modified by the end user through a system user interface, to thereby meet the user's own preferable design in the designated system. Although a template is described with reference to multiple files, the template can also be a single file.
Target Item: A target item is an object to which the associated type of artwork is applied. A target item may be a page, a photo and a text string. Thus, there may be different types of artworks for the different types of the target items. That is, there can be background artworks for page item type, the photo frame artworks for the image photo item type and the text frame artworks for the text string.
3.0 Decorative Artwork System
The user can start the design from scratch or by restoring an album file the user has previously saved. In the case of starting the design by restoring an album file, the user may select a saved album file 125 from the external storage device 104 through the hosting system. Such a device 104 may be the HDD 910 of the computer system 900. The selected album file 125 is passed to an album file interpreter 103. The interpreter 103 loads and parses the album. The interpreter 103 restores target items 101 recorded in the album file 125, and invokes an artwork interpreter 105 to restore artwork data 128. The album file interpreter 103 also restores previously generated user decorative effect data 130 by a user effect data restorer 108, thereby making such data 130 subsequently available through the rest of the system 100, as will be described in detail later. An album data tree 119 is then constructed using the artwork data 128, the target item 101, and decorative effect data 138 (to be described). The tree 119 forms a hierarchical representation of all data to be used to construct the album. An example 1400 of such a tree is shown in
In case of starting the design from the scratch, the user may select a target item 101 in the hosting system. In the photo album example above, the target item could be the digital photographic image to be placed on the page. The system 100 adds the target item into the album data tree 119. An artwork from a list 134 of artwork files is then able to be selected by the user for the selected target item 101 by the user manipulating a user interface illustrated as an artwork selector 102. The artwork files are typically stored in the external storage device 104. A path 135 of a selected artwork file 127 is passed to the artwork interpreter 105 from the artwork selector 102. The interpreter 105 loads the artwork file 127 from the external storage device 104, and parses the file 127 into its memory representative data structure 128 and adds the data structure 128 into the album data tree 119 associated with the target item 101. The selected artwork file 127 may have some geometric objects associated with a decorative effect. Thus, the interpreter 105 is associated with a check 106 to determine if the artwork file 127 contains such decorative effect information. Different geometric objects may be associated with different decorative effects.
Upon the detection of the decorative effect information in the artwork, a decorative effect interpreter 107 is invoked and is provided with the detected decorative effect information. The interpreter 107 loads a corresponding decorative effect file 129 from the external storage device 104 and parses the file 129 into its memory representative data structure 136. In the case that the process was starting from a loaded album file 125 as described above, the data 136 may be overwritten by user decorative effect data (delta values) restored from the album file 125 through the user effect data 130 and a user decorative effect data restorer 108. The decorative effect data structure 136 is organised in a layer-based fashion as a number of decorative effect layers 109, including one or more user layers and one or more fixed layers.
An overall effect is constructed by the user layer(s) combining with all fixed layer(s).
Returning to
From the decorative effect layer selector 110, the decorative effect layer change interface 111 is shown to the user. The interface 111 exposes a set of the decorative effect information to the user. The user can modify the set of information. This, in turn, controls the decorative effect design, such as the graphical objects and the graphical pattern. The information presented to the user is organised in a meaningful and sensible way so that the user can understand and customise the decorative effect design easily. The interface presents two groups of information—a group of the graphical decorative objects and a corresponding manipulation interface shown as decorative object change user interface 112, and a group of the decorative design pattern controls shown as decorative effect setting change user interface 113.
The decorative objects are those objects that decorate a geometric space. The selectable decorative effect user layers 702, 703 pre-define a set of the decorative objects. However, the user can add and replace the decorative objects by using clipart 133 and/or the custom images 132, both of which are typically stored in the external storage devices 104. A clipart selector 114 is provided as a user interface that allows the user to select a clipart 133 from a list or repository of cliparts. The selected clipart may be re-coloured with the recolour user interface 115 so that the user can choose a preferred colour for the decorative object to be constructed from the selected clipart. As seen in
A mask image selector 116 forms a user interface that allows the user to construct a decorative object from a custom image 132. The selector 116 also gives the user the ability to crop 140 and frame the custom image 132 using a predefined mask 131, which may be selected from a set of such masks. The selection from the interfaces 114, 115 and 116 passes the information to a decorative object generator 117. The generator creates a rendering script 137, out of the information and then adds the script 137 to a rendering request queue 122. The rendering request queue 122 gives the system 100 the ability to render the script 137 in an asynchronous fashion. In this regard, a rendering engine 121 and its queue 122 preferably run in a separate thread from the GUI thread, so that the task being performed does not block or impede the users freedom to edit, and the various tasks being performed don't block each other. The rendering engine 121 may render to various outputs, such as a memory image and external image file, depending on how the script specifies the output device.
The rendering engine 121 in this instance renders the script 137 into a decorative object image file 141 onto the external storage device 104 whilst the file path is also passed to the decorative object generator 117. The task 117 then passes the image file to the decorative object change user interface 112 where it is displayed to the user and which sets the image file to replace the image slot of the decorative data structure 136 and also triggers a change event.
The decorative effect setting change interface 113 exposes the selected decorative effect layer pattern setting parameters to the user through various graphical controls. Manipulating these controls, the user can change the setting values to the memory decorative effect data structure, thereby triggering a further change event. The setting value parameters are derived from the effects library described above.
A change event arising from the decorative effect layer change interface 111 is applied to the decorative effect data structure 136 as described above. The changes are then extracted from the data structure as decorative delta data and added into the album data tree 119 so that these changes can be saved and restored later on. Meanwhile, the decorative effect data structure is passed onto the decorative effect renderer 118 whenever any change occurs. The renderer 118 creates a script document 138 that describes the decorative effect on the geometric objects of the decorative artwork. This script 138 is then added into the album data tree 119. Appendix B shows an example of a script document for a simple page.
A script assembler 120, iterates through the album data tree 119, including both the rendering script 138, artwork data 128 and the target item 101, and generates rendering script segments, of various data structures in the tree 119 and then assembles them together into a rendering script document 139.
The assembler 120 adds the script document 139 to the rendering request queue 122. The rendering engine 121 then executes the rendering requests one by one through the queue 122. When the engine 121 eventually renders the assembled script into the memory image 123, the memory image 123 is displayed by the hosting system by passing onto the display interface 124 for reproduction upon the display device 914. The album data tree 119 may be saved 125 into the external storage device 104 for reuse at a later time.
Clicking on the second menu item (second row) 1306 enables the mask image selector 116.
The images in the list 502 are usually rectangular. It is not attractive to have a decorative object in a rectangular shape all the time. The masking task 506 provides a solution to contour the cropped image in a variety of shapes, such as heart shape 512, a star shape 514, and others as desired. The type of shape is termed a mask and such can be helpful for the user to prepare a decorative object in the design for particular occasions such as weddings and birth celebrations. The available masks are represented by a set of mutually exclusive “radio” buttons in the masking task 506. As illustrated, each “radio” button shows a selection icon and an associated mask image. The user can select one of the masks at any time by clicking its icon. Upon the user's selection of the mask, the mask is applied to the cropped image 510. The user can then either confirm the constructed decorative object by clicking the OK button 516 or discard the changes by clicking the CANCEL button 518. The interface 500 is then dismissed.
In certain cases, the user may not want a decorative graphical object in the design and yet not want to replace it either. Thus, the remove button 312 allows the user to remove such a decorative object.
The user can also delete all decorative objects and add personally chosen decorative objects quickly without going through the process of selecting a decorative object button and replacing it. Instead, the user can simply omit selecting a decorative object button. The system will add a generated particle to an empty slot automatically. A decorative object may be rotated on the layout to have a rotated appearance. The rotation button 322 allows the user to switch on or off the rotation of the selected decorative object.
As described, the user may choose a clipart 133 as a decorative object. A clipart 133 is an artwork that may have a set of pre-defined colours to be chosen. That is, a clipart-constructed decorative object can be in different colour forms. For example, a butterfly clipart can be customised to have either blue wings or yellow wings. These pre-defined colours are the best match to the object from the artistic perspective. On the user interface, a set of colour buttons 306 is used to re-colour of the clipart with these pre-defined colours (detail available on request). There is also a Custom button 310 that allows the user to choose a colour from a colour dialog if the user is not satisfied with pre-defined colours presented in the interface 300.
In the context of the above referenced published specifications, a decorative object may be treated as a particle upon which various visual effects processes may be applied. In the field of computer graphics it is often desirable to decorate or enhance given shapes to make them more visually interesting. An example of this may be for the purposes of advertising or web page design. This is done by adding texture to a region defined by a shape, such as filling the region with multiple instances of smaller objects, resulting in a more complex composite image. Circle packing provides such a texture.
Traditional circle packing methods obey the following general conditions:
The particle effect operates to create such composite images from sub-images within a boundary (the sub-images not being restricted to circles) but, for aesthetic reasons, the above general conditions are relaxed. Further, the particle effect provides a spatial relationship followed by a parameter of the sub-images within the image boundary. For example, to further enhance the artistic effect it is often desirable to manipulate the packing density or properties of component circles dependent on their position with respect to reference objects or goals. For instance, it may be desired to vary the size of circles so that they increase in diameter in accordance with their vertical position, or to vary the density of the circles so that they are more densely packed towards the centre of the boundary. Traditional techniques are limited in that although they address the problem of even-distribution packing within a space, they do not provide for further manipulations of density or properties of components such as circles that the user may wish to apply. Given the computational nature of these algorithms, it is desired that such manipulations occur with a minimum of interaction from the user, but that the user also have reasonably precise control over the final result. The particle effect and the packing functions associated therewith afford the user such freedom.
In addition to manipulation of each individual decorative object, the user may adjust the layer setting controls 308 to facilitate a set of simple layout rules to control the way of laying-out or distribution the decorative objects in/on to the decorative space. A rule-based laying-out of the decorative objects gives the user the power to design various decorative patterns simply and easily. Such laying-out also shortens and simplifies the learning curve usually required to design an advanced pattern in other products, thereby advancing the user's expertise in an effortless manner. The laying out of the decorative objects is achieved through determining certain seed locations in the space at which the individual objects are to be positioned. The rules include:
The decorative object-to-boundary space rule governs the relationship between the decorative objects and the space. Such may be used to effect a biasing of the decorative objects in a predefined manner about the space. Such can include distributing the decorative objects towards the centre of the space, distributing the decorative objects towards the boundary of the space and distributing the decorative objects towards a particular direction of the space. The decorative object-to-decorative object rule can be used to vary the spatial displacement of objects within the boundary. For example, such may apply a random distribution at different densities about the space. Alternatively, regular distributions, such as square-grid or diamond-grid, may be specified, also at appropriate densities. The decorative object rule can be used to create various graphical patterns. The user can select any one of the options at a time from a combination box 318 in the interface 300. The distributions are performed according to the principles of the above referenced published specifications.
The decorative object-to-decorative object rule governs the “strength” among the decorative objects. An object with more strength occupies space on its own more so than others with less strength. This effect is akin to electrostatic repulsion. The user can change the strength using the slider control 320 in the user interface 300. This can be achieved by scaling between 0-100% strength for lower and upper bounds which are mapped onto 0-100%.
The decorative object rule governs the size of the decorative objects. The user can change the size of the decorative objects by the slider control 316 in the user interface 300. This can be done with object scaling from 0-100% for its lower and upper bounds which are mapped onto 0-100%. This rule can also be used to vary object-specific parameters such as rotation and transparency.
Appendix A shows an example of artwork file containing decorative effect information. Appendix A defines a geometric shape and flags the shape to be decorated (“glorified” in the language of the artwork file). Appendix A also defines which decorative effect file is to be used to decorate the decorative-flagged geometric shape.
Appendix C is an example of decorative effect file which is referenced to by the artwork file in Appendix A. The file of Appendix C contains a user layer which comprises related effect parameters, including decorative objects (image files), which are to be used for distributing onto the geometric shape(s) defined by the artwork in Appendix A. Such a layer has a set of layer-wide parameters (in a packing section and a placement section) and a collection of decorative objects which have their own controlling parameters. The distribution rules are parameterized from the layer information for instantiation in the geometric shape(s) of the artwork. A subset of parameters defined in the file is arranged to be exposed to a user for manipulating through the relevant GUI (FIGS. 3 to 5).
Given the above structural and functional description of the system 100, it is now possible to describe the internal workflow of decorative effect manipulation used in the system 100. The present workflow description also covers a generalised framework of digital photo album generation so that such may extended to include the other internal workflows of the related functionalities in the future.
The system 100, in one specific implementation, forms part of a digital photo album generation software application (hereinafter the “album application”) which, as seen in
The album application is preferably implemented as an MFC document. The album document constructs an album data tree and has a reference to the tree. The album document also creates a C++ counterpart class object for each item in the tree. In this example, it is an MFC page class object that has a reference to the ICI page item. Meanwhile, the ICI page item holds a reference to its C++ artwork gob class that is instantiated from the artwork file used for the page item. An artwork gob class is a complete version of instantiated artwork file.
The exemplary steps performed in decorating the single page item can be best understood with reference to the dynamic and interactive configuration
Step 1: A UI controller is signalled when the user selects the page (represented by page class). The controller gets the artwork file path from the page item through its corresponding page class. The UI controller then creates an artwork summary class object from the ICI artwork cache based on the artwork file path. An artwork contains numerous data information. Some of the information is essential for the system 100 to know at any time. Accordingly, these kinds of information are stored in the artwork cache, seen in
Step 2: From the artwork summary data, the artwork gob described above is created when a selection on it is made either by system default or from a selection by the user. Back to the artwork summary class object, it contains the decorative effect file path as one of its attributes. The UI controller checks if the artwork summary class object contains the valid decorative effect file path. If so, the controller passes the page item and the artwork summary class object to the decorative effect UI.
Step 3: The decorative effect UI then loads the decorative effect file into the memory decorative data structure.
Step 4: The decorative effect UI, on loading the memory data structure, presents the default values in the UI ready for the user to change. The user is able to add/replace decorative objects as well as to change the parameters through the UI. The UI makes any user's change to the memory decorative data structure, gets the decorative delta data out of the memory decorative data structure and then signals the document the changes by passing the page item, the artwork summary class and the decorative delta data to the document. The decorative delta data is the data exposed to the user and to which user changes are applied.
Step 5: The document then calls the ICI framework with the page item, the artwork file path (out of the artwork summary class) and the decorative delta data.
Step 6: The ICI framework in turn adds the delta data to the page item.
Step 7: The ICI framework then calls the page item's artwork gob with the delta data. The artwork gob has knowledge of the decorative effect file path and the geometric objects to be decorated.
Step 8: With the passed-in decorative delta data, the artwork gob calls on the decorative effect rendering engine to render the information into the script. The decorative effect rendering engine loads the decorative effect file into the memory decorative data structure, overwrites the structure with the decorative delta data and then applies the decorative data structure and the geometric object data (space) to its effect rules (algorithms) to output a script which is a descriptive of the distribution pattern of decorative effect.
Step 9: The script is returned to the artwork gob which in turn returns to the ICI framework via the page item and album data tree.
Step 10: The ICI framework then signals a change event to the document.
Step 11: The document then goes through the entire album data tree recursively to permit each item in the tree the opportunity to generate a corresponding script.
Step 12: In the present example, the page item calls its artwork gob to generate the script. The artwork gob generates its script integrating the decorative script obtained previously.
Step 13: The artwork gob then requests the script rendering engine to render its script into a memory image. The script rendering engine renders the script to a memory image in a background thread.
Step 14: The resultant memory image is passed to the document.
Step 15: The document composites the memory image to a document view screen, being the display 914.
It will be appreciated from the above that the system 100 offers unsophisticated users of graphical design tools the ability, through the manipulation of user-variable layers composited over fixed layer, with the ability to easily create and edit artwork designs for a variety of purposes.
A decorative effect is applied on the geometric shape defined in the artwork. There are different types of artworks for different types of target items. That is, there are background artworks for page item type, photo frame artworks for the photo image item type, and text frame artworks for text strings. In order to illustrate the formation of an artwork according to the preferred implementation, reference is now made to the GUIs of
Decorative effect in the exemplary photo album application is a function to decorate an artwork and therefore the decorating process may not require involvement of any (digital) photograph.
Referring to
Where desired, the user may then add a photo image to the page whose background is decorated. The following steps may then be performed:
For the creation of a decorative text string, the same process is achieved by applying a text frame artwork to the text string. In such an instance, the user picks a text frame artwork from a list of text frame artworks.
The system described is applicable to the computer and data processing industries and particularly to software applications for the artistic presentation of information according to a layout. This can include the creation of photo albums and other forms of document production, according to “best” presentation aesthetic standards.
The foregoing describes only some embodiments of the present invention, and modifications and/or changes can be made thereto without departing from the scope and spirit of the invention, the embodiments being illustrative and not restrictive.
Appendix A: An Example of Decorative Artwork File
Appendix B
Appendix C: An Example of Decorative Effect File
Appendix D: An Example of the Album File
Number | Date | Country | Kind |
---|---|---|---|
2003902954 | Jun 2003 | AU | national |
This application claims the right of priority under 35 U.S.C. § 119 based on Australian Application No. 2003902954, filed Jun. 12, 2003, which is incorporated by reference herein in its entirety as if fully set forth herein.