IP Library Granted Patent US 9,111,398
Granted Patent B2
US 9,111,398 · App. 14/549,466 · Granted Aug 18, 2015

Method and system to perform dynamic layout of photographs

Inventors: Kadir Rathnavelu (Bellevue, WA); Jeff Leitner (Shoreline, WA); Jackie Nowell (Seattle, WA); Christine McKee (Seattle, WA); Steve Blanding (Redmond, WA)
Assignee: RealNetworks, Inc.
G06T11/60G06K9/36
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,111,398
App. No.
14/549,466
Granted
Aug 18, 2015
Kind
B2
Abstract

Disclosed is a layout software routine which automatically creates complex and aesthetically pleasing layouts without any user interaction, though user interaction is possible.

Claims (47)

1. A method of preparing a layout of photographs in a computer comprising a memory, the method comprising:

obtaining in the memory a group of photographs, wherein the group of photographs comprises at least 15 photographs in an ordered sequence;

for a layout comprising a set of panel groups, wherein the set of panel groups are arranged by integer, panel group 1 to a number greater than 4 each panel group within the set comprising at least two templates for photographs, each template within each panel group comprising a number of cells for photographs, the number of cells in each template within each panel group being equal to the integer of the panel group, which cells have a set of cell attributes comprising at least an orientation of the cell, and wherein the templates across the panel groups are distinct from one another; sequentially then by the processor:

a. determining if all of the photographs in the group of photographs have been inserted into templates within the panel groups;

b. if not all of the photographs in the group of photographs have been inserted into templates within the panel groups, then going to step c;

c. selecting the next panel group from the set of panel groups according to the sequential integer order of the panel groups, except that the first panel group follows the last panel group when the last panel group is reached;

d. obtaining the integer of the selected next panel group;

e. determining if the number of unselected photographs remaining in the group of photographs is less than the integer of the selected next panel group;

f. if the number of unselected photographs remaining in the group of photographs is not less than the integer of the selected next panel group, then selecting a number of photographs from the group of photographs equal to the integer of the selected next panel group and going to step g, else if the number of unselected photographs remaining in the group of photographs is less than the integer of the selected next panel group, then selecting a next panel group with an integer equal to or less than the number of unselected photographs remaining in the group of photographs;

g. determining the attributes of the selected number of photographs;

h. selecting a next template within the selected next panel group;

i. determining if the attributes of the selected number of photographs match the attributes of the selected next template;

j. if the attributes of the selected number of photographs match the attributes of the selected next template, then inserting the selected number of photographs into the template within selected next panel group and rendering the photographs according to the template, else if the attributes of the selected number of photographs do not match the attributes of the selected next panel group, then determining if there is a next template within the selected next panel group;

k. if there is a next template within the selected next panel group, going to step h, else if there is not a next template within the selected next panel group, then going to step a.

2. The method of claim 1 , wherein the cells are rectangular and wherein the orientation of the cells may be either portrait or landscape.

3. The method of claim 1 , wherein the set of cell attributes further comprise whether the cell includes a caption.

4. The method of claim 1 , wherein the set of cell attributes further comprise a height and width.

5. The method of claim 1 , wherein the templates further comprise a vertical spacing between cells.

6. The method of claim 5 , wherein the vertical spacing between cells within a template is the same for all cells within the template.

7. The method of claim 1 , further comprising inserting a horizontal space between rendered templates.

8. The method of claim 1 , wherein templates which include two or more cells next to each other further comprise a horizontal spacing between such cells.

9. The method of claim 1 , wherein at least one of the panel groups has a width equal to the width of one cell in a template within the at least one panel group.

10. The method of claim 9 , wherein the one cell has a landscape orientation.

11. The method of claim 9 , wherein the one cell has a portrait orientation.

12. The method of claim 1 , wherein at least one of the panel groups has a width equal to the width of two cells in a template within each of the panel groups plus a width of a horizontal space between the two cells in the template.

13. The method of claim 12 , wherein the two cells have a landscape orientation.

14. The method of claim 12 , wherein the two cells have a portrait orientation.

15. The method of claim 1 , wherein N is the number 5.

16. The method of claim 15 , wherein panel group 2 comprises four templates.

17. The method of claim 15 , wherein panel group 3 comprises ten templates.

18. The method of claim 15 , wherein panel group 4 comprises nine templates.

19. The method of claim 15 , wherein panel group 5 comprises four templates.

20. The method of claim 1 , wherein the layout further comprises a static cell and further comprising inserting the first photograph from the group into the static cell in the layout.

21. A computer system with a computer readable medium comprising instructions which, when executed, perform a method comprising:

obtaining in the memory a group of photographs, wherein the group of photographs comprises at least 15 photographs in an ordered sequence;

for a layout comprising a set of panel groups, wherein the set of panel groups are arranged by integer, panel groups 1 to a number greater than 4, each panel group within the set comprising at least two templates for photographs, each template within each panel group comprising a number of cells for photographs, the number of cells in each template within each panel group being equal to the integer of the panel group, which cells have a set of cell attributes comprising at least an orientation of the cell, and wherein the templates across the panel groups are distinct from one another; sequentially then by the processor:

a. determining if all of the photographs in the group of photographs have been inserted into templates within the panel groups;

b. if not all of the photographs in the group of photographs have been inserted into templates within the panel groups, then going to step c;

c. selecting the next panel group from the set of panel groups according to the sequential integer order of the panel groups, except that the first panel group follows the last panel group when the last panel group is reached;

d. obtaining the integer of the selected next panel group;

e. determining if the number of unselected photographs remaining in the group of photographs is less than the integer of the selected next panel group;

f. if the number of unselected photographs remaining in the group of photographs is not less than the integer of the selected next panel group, then selecting a number of photographs from the group of photographs equal to the integer of the selected next panel group and going to step g, else if the number of unselected photographs remaining in the group of photographs is less than the integer of the selected next panel group, then selecting a next panel group with an integer equal to or less than the number of unselected photographs remaining in the group of photographs;

g. determining the attributes of the selected number of photographs;

h. selecting a next template within the selected next panel group;

i. determining if the attributes of the selected number of photographs match the attributes of the selected next template;

j. if the attributes of the selected number of photographs match the attributes of the selected next template, then inserting the selected number of photographs into the template within selected next panel group and rendering the photographs according to the template, else if the attributes of the selected number of photographs do not match the attributes of the selected next panel group, then determining if there is a next template within the selected next panel group;

k. if there is a next template within the selected next panel group, going to step h, else if there is not a next template within the selected next panel group, then going to step a.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Mar 24, 2025
From: WESTERN ALLIANCE BANK
To: REALNETWORKS, INC.
Reel/Frame 070604/0956 →
MERGER AND CHANGE OF NAME Recorded Feb 13, 2023
From: REALNETWORKS, INC.; GREATER HEIGHTS ACQUISITION LLC
To: REALNETWORKS LLC
Reel/Frame 062746/0554 →
SECURITY INTEREST Recorded Aug 5, 2019
From: REALNETWORKS, INC.
To: WESTERN ALLIANCE BANK
Reel/Frame 049958/0344 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 17, 2015
From: LEITNER, JEFF
To: REALNETWORKS, INC.
Reel/Frame 036590/0111 →
Continuity (2)
Continuation 13662167 · Oct 26, 2012
Related Publication 20150078679A1 · Mar 19, 2015