Individuals and organizations are rapidly accumulating large collections of digital content, including still images, text, graphics, animated graphics, and full-motion video images. This content may be presented individually or combined in a wide variety of different forms, including documents, catalogs, presentations, still photographs, commercial videos, home movies, and metadata describing one or more associated digital content files. As these collections grow in number and diversity, individuals and organizations increasingly will require systems and methods for organizing and presenting the digital content in their collections. To meet this need, a variety of different systems and methods for organizing and presenting digital content have been proposed.
For example, there are several digital albuming systems that enable users to create digital photo albums. Some of these systems provide a means for automatically arranging a layout of graphic objects. Through such systems, the graphic objects may be resized according to certain restrictions. These systems may save a user time and effort in finding an aesthetically acceptable arrangement of graphic objects. In some cases, a user may want to make a few edits to an automatically arranged layout. However, typical systems which provide automatic layouts will rearrange the entire layout in response to an addition, move or removal of a graphic object. Thus, the user may find it difficult to get the layout in a desired state using an automatic graphic object arrangement process.
The accompanying drawings illustrate various embodiments of the principles described herein and are a part of the specification. The illustrated embodiments are merely examples and do not limit the scope of the claims.
Throughout the drawings, identical reference numbers designate similar, but not necessarily identical, elements.
As mentioned above, there are several digital albuming systems that enable users to create digital photo albums. Some of these systems provide a means for automatically arranging a layout of graphic objects. These systems may save a user time and effort in finding an aesthetically acceptable arrangement of graphic objects. However, typical systems which provide automatic layouts will rearrange the entire layout in response to additions and removals of graphic objects. Thus, the user may find it difficult to reach a desired state using an automatic graphic object arrangement function. Ideally, a user should be able to view the layout in its current state and determine a sequence of editing actions which will bring the layout into a desired state.
In light of the above mentioned issues, the present specification relates to a method for incremental graphic object layout editing. According to certain illustrative embodiments, an initial layout of graphic objects may be represented by a binary tree structure. A screen map may then be generated in which regions of the screen map correspond to graphic objects within the initial layout. Each region may then be further divided into sub-regions. Through use of a cursor, a user may select a graphic object to be involved in an editing action. The editing action to be performed may be determined by a position of the cursor related to position of the sub-regions. The binary tree structure representing the graphic object layout may then be updated in response to the performed editing action. The initial layout and corresponding screen map may then be rearranged according to the updated binary tree structure. The rearrangement of the initial layout may maintain the relative positions of the graphic objects not involved with the editing action. However, the graphic objects not involved with the editing actions may be resized according to a graphic object resizing function.
Through use of a system or method embodying principles described herein, a user may intuitively perform editing actions incrementally without having the layout rearranged after each performed edit. Thus, a user may take advantage of systems which automatically rearrange and resize graphic objects and still move the layout towards a desired state.
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present systems and methods. It will be apparent, however, to one skilled in the art that the present apparatus, systems and methods may be practiced without these specific details. Reference in the specification to “an embodiment,” “an example” or similar language means that a particular feature, structure, or characteristic described in connection with the embodiment or example is included in at least that one embodiment, but not necessarily in other embodiments. The various instances of the phrase “in one embodiment” or similar phrases in various places in the specification are not necessarily all referring to the same embodiment.
Throughout this specification and in the appended claims, the term “physical computing system” is to be broadly interpreted as a computing system capable of arranging graphic objects on a page and displaying an arrangement of the graphic objects to a user.
Throughout this specification and in the appended claims, the term “graphic object” is to be broadly interpreted as an image that can be selectively arranged on a page using graphic layout software. A “graphic object” as defined herein may include, but is not limited to, a photographic image, a non-photographic image, and a block of text.
Throughout this specification and in the appended claims, the term “layout” is to be broadly interpreted as an arrangement of graphic objects on a page. The term “page” is to be broadly interpreted as a fixed area upon which a layout may be presented to a user. A page may refer to a physical medium or an electronic medium displayed to a user through a display device.
Throughout this specification and in the appended claims, the term “cursor” is to be broadly interpreted as an object denoting the location on a display in which a user is pointing out through use of an input device. In systems which a display and input device are separate, such as a mouse or a touchpad, a marker may be displayed to a user where the cursor is currently located. In systems which the display and input device are integrated, such as a touch-screen, there may be no need to display a marker indicating where the cursor is.
Referring now to the figures,
The physical computing system (100) may be embodied as several different types of computing devices including, but not limited to, a laptop computer, a desktop computer, or a Personal Digital Assistant (PDA). According to a number of frameworks well known in the art, the system may be distributed geographically. For example, the UI may be running on a client computer with the memory and processor running on a server computer. The physical computing system (100) may include a form of memory (102) including, but not limited to, a magnetic disk drive, a solid state drive, and/or an optical disc drive.
The graphic layout software (106) stored by the memory (102) may be embodied as computer readable code configured to cause a processor (104) to execute various instructions related to the creation and editing of a layout of graphic objects (108) on a page.
A graphic object (108) may be any type of image including, but not limited to, a photo, a text block, or a piece of artwork. A collection of graphic objects (108) may include images imported from another memory medium as well as images designed and/or created with the physical computing system (100).
The user interface (110) may enable interaction between the physical computing system (100) and a user (112). The user interface (110) may include a display device as well as an input receiving device such as a keyboard or a mouse. Through the user interface (110), a user (112) is able to send commands to the physical computing system (100). These commands may involve the layout of graphic objects (108). Information about graphic objects (108) and their layout may be presented to the user (112) through the display device.
The graphic layout software (106) may implement a variety of algorithms for processing data regarding the layout of graphic objects (108). The layout of graphic objects on a page may be represented by a binary tree structure.
A binary tree (212) is a data tree structure having multiple nodes arranged hierarchically such that each node contains either zero or two child nodes. When a binary tree represents a layout of graphic objects, the root node represents the first division of a page. A division may be either horizontal or vertical. In the case of
Each child node represents the graphic objects on one side of a division. In one exemplary convention, in the case of a vertical division, the left child node represents the graphic object(s) on the left side of the division and the right child node represents the graphic object(s) on the right side of the division. In the case of
A child node may represent a further division instead of a graphic object. In the case of
There are systems available which will take a number of graphic objects (302) and automatically organize them as well as resize them if necessary. During the graphic object sizing process, an automatic graphic object arrangement system may work under a set of constraints. For example, the system may only change the overall area of a graphic object (302) and not change the aspect ratio of the graphic object (302). In some cases a minimal amount of cropping may be allowed by the system. An example of one such graphic object sizing process, in which a height and width are automatically assigned to each graphic object (302) within a layout represented by a binary tree structure can be found in C. B. Atkins, “Blocked recursive image composition”, in Proceedings of the 16th ACM international Conference on Multimedia, Vancouver, British Columbia, Canada, Oct. 26-31, 2008.
In some embodiments, a region (306) may include five sub-regions (308, 310); one center sub-region (308) and four side sub-regions (310). The precise boundaries between the sub-regions may vary depending on the implementation. As shown in
The screen map (304) may or may not be displayed to a user. In some embodiments, the screen map (304) may be displayed optionally as a transparent overlay. In some cases, the sub-region (308, 310) in which a cursor is currently being held over may be displayed.
In some embodiments, a region may be assigned to each node within the binary tree structure representing a layout, including interior and exterior nodes. In such an embodiment, a number of nested rectangles, shown as dotted lines in
For example, a user may control the cursor (412) with an input device such as a mouse, touchpad, or touch-screen. With the cursor, the user may select a desired graphic object (406) to be added to the layout by “clicking” on a thumbnail view of the desired graphic object (406). The act of clicking refers to pressing a button on an input device such as a mouse. When using a mouse, the user may then hold down the button and “drag” the selected object to the desired location. The placement of the graphic object within the layout may be determined by the location of the cursor when the user releases the mouse button. For example, if the cursor is located within the lower side region is associated with object 4 (408) when the mouse button is released, then the selected graphic object (406) may be placed adjacent to the bottom border of object 4 (408).
Throughout this specification, actions may be described in terms of using a mouse as an input device. However, use of a mouse is merely one option for an input device. The terms associated with a mouse such as “button,” “click,” or “drag” may have corresponding terms for different input devices. For example, a click with a mouse may correspond to a “tap” on a touch-screen.
In some embodiments, an indicator graphic (414) may be displayed to a user indicating which sub-region the cursor is presently being held over. For example, the border associated with a particular sub-region may light up if the cursor is being held over that particular sub-region. Additionally or alternatively, the indicator graphic may include an animation. The animation may display a wiggling line or a scrolling design.
In some embodiments, the user interface (400) may include a toolbar (402). The toolbar (402) may contain a number of options and functions related to the creating and incrementally editing layouts of graphic objects.
For example, a user may use click on object 3 (502) and drag the object 3 (502) to the delete box (504). The binary tree representing the layout may then be updated. The updated version of the binary tree may maintain all nodes within their respective locations in the tree except for the node representing object 3 (502). The node representing object 3 (502) may be removed from the tree structure. The layout as displayed to the user may then be updated in accordance with the removal. Other actions indicating the removal of a selected graphic object may also be used such as pressing the “delete” key.
For example, a user may click on object 1 (602), the user may then drag the cursor (412) to a center sub-region associated with object 6 (604). The user may then release the mouse button indicating that object 1 (602) and object 6 (604) should be swapped. In some embodiments, object 6 (604) may be highlighted or become discolored to indicate that the cursor (412) is being held over the center sub-region associated with object 6 (604) as opposed to a side sub-region associated with object 6 (604). By performing this editing action, the binary tree structure representing the layout may be updated. The positions of object 1 (602) and object 6 (604) within the binary tree may be swapped.
For example, a user may use a cursor to select graphic object 1 (702) by clicking on it. The user may then drag the cursor to a position corresponding to a sub-region associated with the right border of graphic object 2 (704). In some embodiments, the user may place the cursor on the inner side of an innermost nested rectangle associated with the screen map. An indicator graphic (414) may appear to inform the user that the cursor (412) is currently held within a sub-region associated with graphic object 2 (704). When the user releases the mouse button, the binary tree representing the layout may be updated. The nodes representing object 1 (702) and its parent may be removed from the tree. The interior node that is the parent of nodes 2 and 3 may be moved into the place formerly occupied by the parent of the node representing object 1 (702). The node representing object 2 (704) may then be displaced with a new vertical node indicating a vertical division. This new vertical node may have the nodes representing object 1 (702) and object 2 (704) as child nodes.
In some embodiments, a user may select one of the rectangles associated with the screen map. For example, a user may wish to perform an editing action on a group of graphic objects. A user may select a particular region that includes more than one graphic object. For example, a user may select the region that encompasses graphic objects 1, 2, and 3 and perform an editing action. The vertical root node associated with graphic objects 1, 2, and 3 may be repositioned within the binary tree structure or removed from the binary tree structure based on the editing action performed.
In a similar case as illustrated above, a user may use a cursor to select graphic object 1 (802) by clicking on it. The user may then drag the cursor to a position corresponding to a sub-region associated with the region that is associated with the horizontal node whose child nodes represent objects 2 and 3 (804, 806). This region may be displayed to a user as a space outside the innermost nested rectangles around graphic objects 2 and 3 (804 and 806) and inside the nested rectangle that encloses only the original positions of objects 1 and 2 (804, 806). An indicator graphic (414) may appear to inform the user that the cursor (412) is currently held within the appropriate sub-region. When the user releases the mouse button, the binary tree representing the layout may be updated. The node representing object 1 (802) and its parent may be removed from the tree. The interior node that is the parent of nodes 2 and 3 may be moved into the place formerly occupied by the parent of the node representing object 1 (802). The node that is the parent of nodes 2 and 3 may then be displaced with a new vertical node indicating a vertical division. This new vertical node may have the parent of nodes 2 and 3 as one child node, and the repositioned node 1 as the other child node.
Throughout the drawings, graphic objects are shown as straight rectangular objects with similar spacing between neighboring graphic objects. A system or method embodying principles described herein is not limited to such graphic objects. For example, a graphic object may be of a variety of shapes. Additionally, graphic objects may be titled or overlapped as preferred by a user. Furthermore, various types of border art and border techniques may be used for the various graphic objects associated with the layout.
As mentioned above, a tree structure may include horizontal nodes (902) representing horizontal divisions within the layout, vertical nodes (904) representing vertical divisions within the layout, and terminal nodes (906) representing the individual graphic objects in the layout. Throughout
When object 1 is repositioned by a user to be adjacent to graphic objects 2 and 3 as shown in
The descriptions above relating to the updating of tree structures in response to editing actions performed by a user do not necessarily describe in detail every change that occurs within the tree structure according to the indicated editing action. The full change brought about to a tree structure in response to a particular editing action may be appreciated by one skilled in the relevant art.
As mentioned above, a graphic object may include text blocks as well as images. As a user incrementally creates and edits the layout of graphic objects (1002), the automatic graphic object resizing process may change the overall area delegated to each graphic object. The set of statistics (1004) may indicate to the user the current amount of area being used for images. Likewise, the set of statistics (1004) may show the current area delegated to text blocks. This statistic may be shown as an exact value or a percentage.
As mentioned above, the automatic graphic object resizing process may attempt to resize graphic objects (1002) with as little amount of cropping as necessary while still maintaining an aesthetically pleasing layout. The set of statistics (1004) may inform a user of the total area which has been cropped away from the current layout of graphic objects (1002). This statistic may be shown as an exact value or a percentage.
In sum, through use of a system or method embodying principles described herein, a user may intuitively perform editing actions incrementally without having the layout rearranged after each performed edit. Thus, a user may take advantage of systems which automatically rearrange and resize graphic objects and still move the layout towards a desired state.
The preceding description has been presented only to illustrate and describe embodiments and examples of the principles described. This description is not intended to be exhaustive or to limit these principles to any precise form disclosed. Many modifications and variations are possible in light of the above teaching.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US2010/022551 | 1/29/2010 | WO | 00 | 5/24/2012 |