# Patent

## Title
System and method for automatic generation of image distributions

## Abstract

A method and system for automatically producing arrangements of two-dimensional extents in a computer-based editing or animation environment is presented. The method consists of defining a set of objects having two or more dimensions, automatically calculating and presenting an arrangement of said objects, and optionally iterating to produce alternative arrangements. The arrangements may use templates to guide the selection of sizes, border colors and transparency, rotation, and other attributes of the contained regions.

## Background
This application is a continuation application of U.S. patent application Ser. No. 10/900,442 filed Jul. 28, 2004, issued as U.S. Pat. No. 7,573,486 on Aug. 11, 2009.


CROSS-REFERENCE TO RELATED APPLICATIONS












application




#
Title
Relationship







60/446,751
Method and System 
Regions of a composition generated 



for interactive 2D
by the current invention can be 



region segmentation
further subdivided using the 




methods taught in said related 




application.


60/469,873
Method and system 
Compositions generated by the 



for multipage
current invention can be subdivided 



print layout
for printing using the methods in 




said related application.


60/446,752
Method and system 
Regions of a composition generated 



for distributing multiple 
by the current invention can be 



dragged objects
populated with data using the 




methods taught in said related 




application.


60/446,757
Method and system for 
Regions of a composition generated 



interactive cropping of 
by the current invention can be 



a graphical object within
cropped using the methods taught



a containing region
in said related application.









FIELD OF THE INVENTION
The present invention relates to computer-based editing systems and methods. More particularly, the present invention relates to a method and system for the automatic creation of arrangements of two-dimensional data, such as images within a collage.
BACKGROUND OF THE INVENTION
Digital imaging systems enable the user to manipulate images such as those captured by a digital camera, scanned from paper originals, or generated by other digital imaging software systems. One such operation involves assembling multiple images into a single larger image, forming a “collage”, or an arrangement of images which is itself an image. Software tools, such as the LumaPix::FotoFusionTM software application published by LumaPix, simplify the creation of collages with tools that enable the user to position, resize, and interactively crop images in order to generate the larger collage.
To create a collage, the user typically selects images from a repository, then brings them onto a collage surface, or “Canvas”, where further editing (such as rotating, mirroring, or resizing member images) is possible. The act of producing the collage may be aided by tools such as the subdivision of the canvas into smaller, aligned frames. In many cases the user must manually populate the empty frames with images from the repository. In other prior art, there exist “templates”, or pre-defined arrangements of frames within canvases, which can be populated with a selected set of images with a single action by the user. While this technique requires less work of the user than manual placement, it also restricts the variety of collage compositions to only those alternatives made possible by re-ordering the insertion of selected images into pre-arranged frames in the template; the overall structure of the generated collage remains identical to the template collage. While this uniformity may be desirable for certain applications, the results become monotonous for other applications where variety and uniqueness are appreciated. Novel collage layouts retain visual interest, a desirable trait when viewing collections of collages.
It is therefore desirable to provide a method and system for producing two-dimensional arrangements that obviates or mitigates the disadvantages of the prior art. In particular, it is desirable to provide a method and system for automatically generating unique arrangements of images, ideally with the ability to produce novel varieties of arrangements that have been “inspired” by a selected template layout.
SUMMARY OF THE INVENTION
According to a first aspect of the present invention, there is provided a method for editing an arrangement of objects in a computer-based editing system, comprising the steps of:

    
    
        a) Defining a set of objects to be arranged, each object member of said set specifying an extent in at least two dimensions
        b) Automatically calculating and presenting an arrangement of said set of objects within an extent of at least two dimensions such that said arrangement of said objects fills said extent, cropping said images as necessary to allow uniform spacing if desired.
        c) Optionally, automatically calculating and presenting alternative arrangements of said set of objects.
    
    


According to a further aspect of the present invention, there is provided a method wherein the user selects a template arrangement determining a set of attributes to be used in the calculation of a new arrangement. The attributes specified by this template may include region border width and/or color and/or transparency and/or texture and/or rotation and/or size distribution.



BRIEF DESCRIPTION OF THE DRAWINGS
Preferred embodiments of the present invention will now be described, by way of example only, with reference to the attached Figures, wherein:
FIG. 1a is a schematic of an editing system operating on a single computing device according to an embodiment of the present invention;
FIG. 1b is a schematic of an editing system operating on a client-server basis in a networked system of computing devices according to an embodiment of the present invention;
FIG. 2 illustrates the user interface of a preferred embodiment of the present invention
FIG. 3 is a flow chart of a method according to an embodiment of the present invention;
FIG. 4 illustrates two alternative styles of collages, or arrangements of data objects exposing a two-dimensional extent: a regular, or aligned collage, and an irregular, or free-floating collage.
FIG. 5 illustrates various techniques for producing alternative arrangements of a given collage, including varying data object order, varying data object size and position, and varying attributes (such as color or thickness) of the frames enclosing the data objects.
FIG. 6 illustrates a resizing of the overall collage extent forced by the variation of the size and position of data objects contained within that collage.



DETAILED DESCRIPTION
The present invention provides a system and method for editing digital information. In the following discussion, the present invention is described for illustrative purposes with reference to the manipulation of raster image information. However, one of ordinary skill in the art will recognize that the invention, in its broadest aspect, is applicable to applications other than image applications, and it is not intended that the scope of the invention be so limited.
Computer Imaging System
A computer-based system 1 suitable for use of this invention is schematically depicted in FIG. 1a. The application system 1 includes a computer 2 that has a central processing unit (CPU) 3 which may include local memory 3a, static memory 4 such as Read-only memory (ROM), main memory 5 such as Random Access memory (RAM), mass memory 6 such as a computer disk drive, a system bus 7, adaptor(s) for external input devices 8, and a display adapter 9 which may include local memory 9a. The computer 2 communicates with an alphanumeric input device 10 such as a keyboard, a pointing device 11 such as a mouse for manipulating a cursor and making selections of data via said input adapter 8. The computer 2 communicates with a video display 12 such as a computer monitor via said display adapter 9.
The computer 2 may execute software such as the imaging system described below to allow the system 1 to render high quality graphics images on the monitor 12. The CPU 3 comprises a suitable processing device such as a microprocessor, for example, and may comprise a plurality of suitable processing devices. The graphics adaptor 9 may also be capable of executing instructions. Instructions are stored in the CPU local memory 3a, static memory 4, display adapter local memory 9a, main memory 5, and/or mass memory 6 and are executed by the CPU 3 or the display adapter 9.
The static memory 4 may comprise read only memory (ROM) or any other suitable memory device. The local memory may store, for example, a boot program for execution by CPU 3 to initialize the graphics imaging system 1. The main memory 5 may comprise random access memory (RAM) or any other suitable memory device. The mass memory 6 may include a hard disk device, a floppy disk, an optical disk, a flash memory device, a CDROM, a file server device or any other suitable memory device. For this detailed description, the term memory comprises a single memory device and any combination of suitable devices for the storage of data and instructions.
The system bus 7 provides for the transfer of digital information between the hardware devices of the system 1. The CPU 3 also receives data over the system bus 7 that is input by a user through alphanumeric input device 10 and/or the pointer device 11 via an input adaptor 8. The alphanumeric input device 10 may comprise a keyboard, for example, that comprises alphanumeric keys. The alphanumeric input device 10 may comprise other suitable keys such as function keys for example. The pointer device 11 may comprise a mouse, track-ball, tablet and/or joystick, for example, for controlling the movement of a cursor displayed on the computer display 12.
The system 1 of FIG. 1a also includes display adapter hardware 9 that may be implemented as a circuit that interfaces with system bus 7 for facilitating rendering of images on the computer display 12. The display adapter hardware 9 may, for example, be implemented with a special graphics processor printed circuit board including dedicated random access memory 9a that helps speed the rendering of high resolution, color images on a viewing screen of the display 12.
The display 12 may comprise a cathode ray tube (CRT) or a liquid crystal display particularly suited for displaying graphics on its viewing screen. The invention can be implemented using high-speed graphics workstations as well as personal computers having one or more high-speed processors.
In the preferred embodiment of the invention, the system 1 utilizes specialized graphics software which implements a user interface and related processing algorithms as described in subsequent sections to enable the user to produce works viewed on the display 12 and which may be stored in mass memory 6.
With reference to FIG. 1b, the system may also operate in a networked environment of multiple computing devices. Specifically the system may perform certain calculations on a server device 13, which communicates via a network adaptor 13d with a client device 14 which itself includes a network adaptor 14d. The communication between client and server enables the method of the current application to be executed in a distributed fashion, with flexibility as to which of the two devices performs each step as will be described in further detail below.
Employing system 1, a collage or other digitally edited representation of multiple source data can be composed and edited. FIG. 2 shows a typical graphical user interface employed by a user to create and edit a composition. Embodiments of the present invention will be described with reference to the illustrated LumaPix::FotoFusionTM interface. However, as will be apparent from the following description, the present invention is not limited to any particular user interface or application software package, and can be used in any system enabling the assembly of compositions of multiple source data objects exposing two-dimensional extents.
In some examples of prior art, assembling collages is achieved by manually adding images to a workspace in an iterative fashion. The workspace may have been pre-configured with a set of frames which accept the images into pre-defined positions and sizes, thereby accelerating the process of arranging the collage; this set of pre-configured frames is herein referred to as a ‘template’. A collection of templates may expose a variety of border styles (for example, blurred edges versus hard edges, blue versus red color borders around the images); however, in prior art the primary purpose of each template is to provide a set of fixed ‘pigeonholes’ which determine how a user-specified set of pictures will be arranged, thus reducing the amount of manual work required by the user.
In prior art, using a template with a set of selected pictures determines the size and position of each image in the resulting collage, with the end product matching the template layout precisely. In particular, should a template contain sufficient frames to hold ten images, then prior art methods may respond to attempts by the user to insert twelve images by creating an additional instance of the ten-image collage to hold the two extra images, or by reducing the list of source images by two images by some automated criteria or user intervention and continuing with ten images.
The method and system of the present invention improve upon this static definition of a template, in that the template instead defines guidelines for the production of a final collage which may contain any number of source images. The template may additionally include attributes such as border color and style, which are used as guidelines for the creation of variations upon a theme as opposed to exact duplicates of the template styles. Importantly, the user has the ability to iteratively generate new collages based upon a selected template and set of source images; the user can choose a favorite result from within the generated series of unique compositions, which vary within ranges allowed by the template.
In other prior art, software tools exist to optimize the use of wide-format paper when outputting multiple “jobs” to a printer, arranging those unrelated jobs (such as photos or text documents) to fit side-by-side on the printed output as opposed to beside one another (thus leaving less paper blank and wasted). Each of the documents to be printed must be printed at an exact size (number of square inches) and resolution (dots per inch) and without any modification to the document (e.g. cropping part of the image away to fit a space). As a result, the prior art produces a “best fit of images without affecting those images”.
The method and system of the present invention improve differ from that automatic printed document arrangement functionality by allowing cropping and scaling of the source images to take place. This allows the user to create compositions of interesting arrangements of images that appear evenly laid out, with uniform distances between all edges of all images in the collage. This effect is not possible unless the program is allowed to crop images to fit. The prior art for printing layout is a technical process designed to optimize paper usage; the current invention is an layout tool designed to present images in an aesthetic manner. The prior art must not affect the source images in any way; the current invention may crop and scale images as required to accomplish the goal of a uniformly-spaced layout.
The method of the present invention will be described with reference to the flow chart shown in FIG. 3.
The method of the present invention commences at step 3a, by selecting a set of images, with no bounds on the number of images in that set. As will be easily conceived by one of skill in the art, selection may take place via browsing the file system, conducting searches for suitable data objects, referring to a database of data objects, or other techniques. Alternatively, in this step, the user may elect to merely specify a number of frames as opposed to the specific images that will fill those frames. This enables the user to generate an ‘empty’ collage, ready for the introduction of images at a later time if this is desirable. In another alternative, the user may skip step 3a and proceed to step 3b, the selection of a template, which may suggest a number of empty frames in the absence of a number specified by the user.
The method proceeds to step 3b, where in a preferred embodiment the user selects a template from a library of available templates; the library contains “styles” such as those shown in FIG. 4, where by way of example one template produces a ‘regular’ collage 40 (a grid-like arrangement where frames 41 do not overlap and have no rotation) and a second template produces a ‘free-form’ collage 42 (in which frames 43 can be rotated to any angle and empty space can exist between images). If the user chooses not to select a template, a default template may be employed. Step 3b is itself optional, as the user may choose to simply apply an ‘autocollage’ tool, which uses the steps in the current invention to create an automatic layout to fill dimensions specified by the user.
The method proceeds to step 3c, in which the user clicks a button 20 or otherwise indicates his desire to create an arrangement automatically. The system 1 responds by producing a collage in the style of the currently selected template, in a method described more fully in a subsequent section, and displaying it to the user for consideration.
In step 3d, the user evaluates the automatically-generated collage for suitability. If it is unacceptable deficient under some criteria, the user may elect to regenerate a new collage using the same template (which in the current invention will produce a unique new arrangement with the same visual character as the current template) or alternatively to select a different template entirely.
The ability to generate a novel arrangement at this step 3c in the method is unique among current art; indeed, because in existing art the generation of arrangements from a template in current art involves copying the arrangement and frame attributes from the template directly into the final collage, there is often no need in existing art for the option to regenerate the collage as this would produce identical results to the extant collage. In contrast, a user of the current invention can continue to request alternative arrangements and see a stream of unique variations upon the theme proposed by the initial collage.
Continuing to step 3e, the user may elect to apply additional editing tools to modify the automatically-generated collage. Various techniques for accelerating the positioning of images within frames, and the subdivision of frames to hold additional images, are described in commonly assigned U.S. Patent Application entitled “METHOD AND SYSTEM FOR INTERACTIVE 2D REGION SEGMENTATION”, USPTO application No. 60/446,751, the contents of which are incorporated herein by reference.
At step 3f, the user is satisfied with his composition and the process completes.
Alternatively, if at step 3d the user is not satisfied with some aspect of the arrangement of his collage, the method proceeds to step 3g in which the user determines whether the attributes of the template are acceptable but the specific arrangement is not (in which case the user proceeds to step 3c), or the attributes of the collage itself are unacceptable (leading to the selection of a different template in step 3b).
Finally, it is important to note that the user can add new images to the collage or remove existing images from the collage at any point through this process; for example, the user can choose to add three images to a collage already holding 10 frames to produce a new collage with 13 frames.
The method of the present invention will now be described in greater detail with reference to FIG. 5.
The user selects a set 50 of source images from storage, in this diagram by way of example a set of nine images labeled A through I. Note that the user may also elect to simply specify a number of images for the collage, which will be created with empty placeholder frames that can be filled in at a later time. The user also selects a template 51, in this diagram by way of example a template that produces regular, or grid-based, arrangements of images. Note also that the system 1 may provide a default template, removing the requirement for the user to manually specify a template at this step.
The system 1 automatically generates a collage 52 which has the following properties:

    
    
        It is composed of a set of frames 53, each capable of holding an image from the set of source images 50.
        The set of frames 53 is of the same size as the same as the set of source images 50 selected by the user (in this case 9 frames), unless the template includes an upper bound on the number of frames a generated collage may contain (in which case the system 1 may generate one or multiple additional instances of the collage 52 as required)
        The frames 53 are filled with the images A-I selected by the user 50
        The arrangement of the frames 53 within the collage 52 and the attributes of those frames are within a threshold of the values, or within the range of values specified by, the template 51 selected by the user.
        At this or any subsequent moment the user may elect to re-generate the collage; in the preferred embodiment of the invention, he may indicate this choice by clicking on a button 20 with the pointing device 11 or a similar contrivance.
        When the user so triggers a re-arrangement of the collage, the results are generated by the system 1 in such a manner that the newly-generated collage 54-59 vary from the original 52 in some manner determined by the template 51, including by way of example,
        
            Variations (54, 55) in the order of image insertions into the frames of the collage 52, such that the order of the displayed images 50 but no other aspect of the collage is affected
            Variations (56, 57) in the position and size of frames holding the source images 50
            Variations (58) in the width, color, transparency, and/or ornamentation of the frames holding each source image 50.
            Variations (59) in the rotation of the frames holding each source image 50.
        
        
    
    


With respect to variations in frame size, the template 51 may support specification of a fixed size (which would result in collages with evenly-sized frames, and a rectangular matrix of equally-sized frames if the template additionally restricts rotation to zero and arrangements to non-overlapping).
Additionally, the template may support specification of a distribution of sizes; for example, a template may specify that 20% of the frames in the resulting collage are four times the size of the smallest, and that 20% of the frames are twice the size of the smallest.
Variations of parameters exposed by the template may be computed by a variety of methods, including:

    
    
        direct copying of a single value included in the template
        random selection of a value within a bounded range specified by the template, using a uniform distribution or one suggested by the template for that parameter
    
    


With respect to variations in frame size and position, note that in most cases the overall dimensions of the collage extent 52 remain the same between variations upon the collage; alternatively, the user may enable the resizing of the collage based upon the shape of the images it contains. As illustrated in FIG. 6, an arrangement 60 of a set of image A-I has a particular size (in this case, the width of images A+B+C and the height of images A+D+H). The resizing of images D, F, I and H to form D′, F′, I′ and H′ respectively has been allowed to resize the collage to a new dimension 61 (in this case, the width of images A+B+C and the height of images A+D′+I′+G).
Referring once again to FIG. 1b, it is noted that the execution of the method of this invention can be performed in a distributed fashion between a client 14 and at least one server application 13. Making use of such a network may be desirable for several reasons, including:

    
    
        Application security. By placing the executable code to compute the arrangement of the collage on the server 13, it becomes impossible to create an unauthorized copy of the program (as the user must connect to the server 13 to produce a collage, and unauthorized attempts to connect can be detected and denied).
        Efficient use of bandwidth. Consider a user who wishes to create collages from a set of images that are available in advance (for example, producing a visual selection list of items available for sale that are listed in a central database of such items). Working on the Client computer 14, the user can query the server 13 for a collage which is assembled by the server according to the method of this invention; the resulting collage makes much more efficient use of the bandwidth available via the network 15 than would be the case had the server 13 simply returned all available images. In particular, the user can use the collage as a ‘table of contents’ for selecting higher-bandwidth versions of images available from the server 13. What is unique in this method is the dynamic assembly of the collage by the server 13, based on the unpredictable query he makes of the server's database.
    
    


In a networked embodiment of this invention,

    
    
        A. The code used to generate the arrangement of frames resides on the server 13
        B. The parameters of the creation of the collage (the overall size of the collage, the template for its creation, the image format to write the resulting image in) may reside on the server 13 or client 14
        C. The images used as sources for the collage may reside on the server 13 or client 14.
    
    


The alternatives B and C are independent and result in different uses:

    
    
        If the parameters reside on the client and the images reside on the server 13, the resulting application allows a user to compose a novel arrangement of images from a database. Examples include the selection of wedding pictures from a web database by a guest at a wedding: the owner of the pictures has a fixed set of images available but cannot predict which pictures a specific guest would be interested in seeing in a collage.
        If the parameters and images reside on the client 14, the use of the server to create the collage indicates that the collage generation is a ‘web service’, in which the user does not have to install the collage-making software on the client machine 14 but simply make use of a service available on the network.
        If the parameters reside on the server 13 and the images reside on the client 14, the user has the ability to select local images and have a collage generated and sent via the network which conforms to a style determined by the operator of the web service. As an example, a real estate agent may take pictures of a house and use a server-based collage generation tool to have a collage with a visual style conforming to the format expected by the realty company.

## Claims

1. A computer-implemented process for generating arrangements of a set of images, wherein there is a number of images in the set, comprising:
receiving from a user the set of images, wherein the set can contain any number of images,
generating, in a memory of a computer, a collage of the set of images in a plurality of frames, thereby providing a number of frames, by:
specifying the plurality of frames according to a set of attributes, and setting the number of frames to correspond to the number of images,
generating an arrangement of the plurality of frames wherein the plurality of frames fits within an overall dimension defining a border with a uniform distance between all edges of all frames and edges of adjacent frames and the border in the collage,
associating each of the images with at least one of the frames,
sizing and cropping each image to fit the frame with which it is associated; and
rendering the sized and cropped images in the frames to create the collage of the images with a uniform distance between all edges of all images and edges of adjacent images and the border in the collage; and

causing the collage to be displayed on a display wherein the arrangement of the plurality of frames is specified by a template having a number of frames, and wherein the number of frames is adjusted to match the number of images.

2. The computer-implemented process of claim 1, wherein each image has attributes that are independent of content of the image, and wherein associating an image with a frame is based on matching one or more attributes of the image to one or more attributes of the frame, without requiring analysis of the content of the image.

3. The computer-implemented process of claim 1, wherein images and frames have corresponding attributes, and wherein associating an image to a frame is based on matching one or more attributes of the images to one or more attributes of the frames.

4. The computer-implemented process of claim 1, wherein associating an image with a frame is based on attributes of the images and frames.

5. The computer-implemented process of claim 1, wherein arranging the frames is based on attributes of the frames.

6. A computer-implemented method for generating arrangements of a set of images wherein there is a number of images in the set, comprising:
receiving from a user the set of images,
generating, in a memory of a computer, a first collage of the set of images in a template comprising a plurality of frames by:
specifying the plurality of frames according to a set of attributes and corresponding in number to the number of images, wherein values used for the set of attributes in the first collage are selected by the computer from within ranges defined for the attributes,
generating a first arrangement of the plurality of frames wherein the plurality of frames fits within an overall dimension with uniform spacing among the frames, and
associating each of the images with at least one of the frames in the first arrangement;

causing the first collage to be displayed on a display;
generating, in the memory of the computer, a second collage of the set of images using the same template as the first collage, by:
specifying the set of attributes of the plurality of frames such that values used for the set of attributes in the second collage are selected by the computer from within ranges defined for the attributes and differ from the values used for the set of attributes in the first collage,
generating a second arrangement of the plurality of frames wherein the plurality of frames fits within the overall dimension with uniform spacing among the frames, and
associating each of the images with at least one of the frames in the second arrangement;

causing the second collage to be displayed on the display; and
enabling the user to select at least one of the first and second arrangements.

7. The computer-implemented method of claim 6, wherein images have attributes that are independent of content of the images, and wherein associating an image with a frame is based on matching one or more attributes of the image to one or more attributes of the frame, without requiring analysis of the content of the image.

8. The computer-implemented method of claim 7, wherein generating the second arrangement comprises varying an attribute within a range of values for the attribute.

9. The computer-implemented method of claim 8, wherein varying the attribute comprises varying the attribute in a random fashion.

10. The computer-implemented method of claim 6, wherein images and frames have corresponding attributes, and wherein associating an image to a frame is based on matching one or more attributes of the images to one or more attributes of the frames.

11. The computer-implemented method of claim 10, wherein generating the second arrangement comprises varying an attribute within a range of values for the attribute.

12. The computer-implemented method of claim 11, wherein varying the attribute comprises varying the attribute in a random fashion.

13. The computer-implemented method of claim 6, wherein associating an image with a frame is based on attributes of the images and frames, and wherein generating the second arrangement comprises varying one or more of the attributes within ranges of values for the one or more attributes.

14. The computer-implemented method of claim 13, wherein varying the attribute comprises varying the attribute in a random fashion.

15. The computer-implemented method of claim 6, wherein arranging the frames is based on attributes of the frames, and wherein generating the second arrangement comprises varying one or more of the attributes within ranges of values for the one or more attributes.

16. The computer-implemented method of claim 15, wherein varying the attribute comprises varying the attribute in a random fashion.

17. The computer-implemented method of claim 6, wherein associating the images with the frames is based on one or more attributes of the images, and wherein generating the second arrangement comprises varying one or more of the attributes within ranges of values for the one or more attributes.

18. The computer-implemented method of claim 17, wherein varying the attribute comprises varying the attribute in a random fashion.

19. A computer program product, comprising:
a computer readable storage device;
computer program instructions stored on the computer readable storage device that, when processed by a computer, instruct the computer to perform a process for generating arrangements of a set of images wherein there is a number of images in the set, the process comprising:
receiving from a user the set of images,
generating, in a memory of a computer, a first collage of the set of images in a template comprising a plurality of frames by:
specifying the plurality of frames according to a set of attributes and corresponding in number to the number of images, wherein values used for the set of attributes in the first collage are selected by the computer from within ranges defined for the attributes,
generating a first arrangement of the plurality of frames wherein the plurality of frames fits within an overall dimension with uniform spacing among the frames, and
associating each of the images with at least one of the frames in the first arrangement;

causing the first collage to be displayed on a display;
generating, in the memory of the computer, a second collage of the set of images using the same template as the first collage, by:
specifying the set of attributes of the plurality of frames such that values used for the set of attributes in the second collage are selected by the computer from within ranges defined for the attributes and differ from the values used for the set of attributes in the first collage,
generating a second arrangement of the plurality of frames wherein the plurality of frames fits within the overall dimension with uniform spacing among the frames, and
associating each of the images with at least one of the frames in the second arrangement;

causing the second collage to be displayed on the display; and
enabling the user to select at least one of the first and second arrangements.

20. The computer program product of claim 19, wherein images have attributes that are independent of content of the images, and wherein associating an image with a frame is based on matching one or more attributes of the image to one or more attributes of the frame, without requiring analysis of the content of the image.

21. The computer program product of claim 20, wherein generating the second arrangement comprises varying an attribute within a range of values for the attribute.

22. The computer program product of claim 21, wherein varying the attribute comprises varying the attribute in a random fashion.

23. The computer program product of claim 19, wherein images and frames have corresponding attributes, and wherein associating an image to a frame is based on matching one or more attributes of the images to one or more attributes of the frames.

24. The computer program product of claim 23, wherein generating the second arrangement comprises varying an attribute within a range of values for the attribute.

25. The computer program product of claim 24, wherein varying the attribute comprises varying the attribute in a random fashion.

26. The computer program product of claim 19, wherein associating an image with a frame is based on attributes of the images and frames, and wherein generating the second arrangement comprises varying one or more of the attributes within ranges of values for the one or more attributes.

27. The computer program product of claim 26, wherein varying the attribute comprises varying the attribute in a random fashion.

28. The computer program product of claim 19, wherein arranging the frames is based on attributes of the frames, and wherein generating the second arrangement comprises varying one or more of the attributes within ranges of values for the one or more attributes.

29. The computer program product of claim 28, wherein varying the attribute comprises varying the attribute in a random fashion.

30. The computer program product of claim 19, wherein associating the images with the frames is based on one or more attributes of the images, and wherein generating the second arrangement comprises varying one or more of the attributes within ranges of values for the one or more attributes.

31. The computer program product of claim 30, wherein varying the attribute comprises varying the attribute in a random fashion.