IP Library Granted Patent US 9,244,917
Granted Patent B1
US 9,244,917 · App. 13/629,888 · Granted Jan 26, 2016

Generating a layout

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,244,917
App. No.
13/629,888
Granted
Jan 26, 2016
Kind
B1
Abstract

Techniques for generating layout may include: receiving data corresponding to images modules; determining that a set of the image modules will fit a layout; assigning image modules from the set to the layout; determining a number of possible permutations of the image modules given one or more constraints associated with images in the set of image modules; selecting a number of candidate templates to accommodate the layout, where the number of candidate templates is based on the number of permutations; filling candidate templates with image modules from the set; receiving an input selecting one of the candidate templates containing image modules from the set; and outputting data for the selected candidate template, the data for generating a display of the selected candidate template.

Claims (78)

1. A method comprising:

receiving data corresponding to image modules;

determining that the image modules will fit a layout;

assigning image modules to the layout, wherein assigning comprises:

assigning points to the image modules based on sizes of the image modules, where the image modules comprise first image modules and second image modules, the first image modules being larger than the second image modules, each first image module being assigned more points than a second image module;

assigning, to the layout, image modules from the first image modules;

determining a score based on a number of points for the layout, the number of points for the layout being based on a sum of points assigned to the first image modules assigned to the layout; and

assigning either first image modules to the layout or second image modules to the layout based on whether the score exceeds a threshold;

determining a number of possible permutations of the image modules given one or more constraints associated with images in the image modules;

selecting a number of candidate templates to accommodate the layout, the number of candidate templates being based on the number of permutations;

filling candidate templates with image modules;

receiving an input selecting one of the candidate templates containing image modules; and

outputting data for the selected candidate template, the data for generating a display of the selected candidate template.

2. The method of claim 1 , wherein each of the image modules comprises an image, and one or more of the image modules comprises at least one of an information bar and padding, the information bar for displaying information relating a corresponding image, the padding comprising pixels adjacent to a corresponding image and apart from the corresponding image.

3. The method of claim 1 , wherein, each of the candidate templates comprises slots to accommodate image modules; and

wherein filling the candidate templates comprises placing image modules in slots of the candidate templates.

4. The method of claim 3 , further comprising:

associating annotations with the layout that assign image module attributes to structural features of the candidate templates;

wherein the candidate templates are filled based on the annotations.

5. The method of claim 4 , wherein the image module attributes comprise shapes of the image modules, and wherein the structural features of the candidate templates comprise a number of columns or rows in a template.

6. The method of claim 1 , wherein the one or more constraints correspond to sizes of the image modules; and

wherein the number of possible permutations is determined based on an overall number of the image modules and a number of the first image modules.

7. The method of claim 1 , wherein determining that the image modules will fit a layout comprises:

determining a number of image modules that can be included in a layout; and

selecting the image modules from among a set of received image modules, the selected image modules being a number of image modules that can be included in the layout.

8. The method of claim 1 , wherein filling candidate templates with image modules comprises identifying a largest image module among the image modules, and identifying a template having a smallest slot that can accommodate the largest image module.

9. One or more non-transitory machine-readable media storing instructions that are executable to perform operations comprising:

receiving data corresponding to image modules;

determining that the image modules will fit a layout;

assigning image modules to the layout, wherein assigning comprises:

assigning points to the image modules based on sizes of the image modules, where the image modules comprise first image modules and second image modules, the first image modules being larger than the second image modules, each first image module being assigned more points than a second image module;

assigning, to the layout, image modules from the first image modules;

determining a score based on a number of points for the layout, the number of points for the layout being based on a sum of points assigned to the first image modules assigned to the layout; and

assigning either first image modules to the layout or second image modules to the layout based on whether the score exceeds a threshold;

determining a number of possible permutations of the image modules given one or more constraints associated with images in the image modules;

selecting a number of candidate templates to accommodate the layout, the number of candidate templates being based on the number of permutations;

filling candidate templates with image module;

receiving an input selecting one of the candidate templates containing image modules; and

outputting data for the selected candidate template, the data for generating a display of the selected candidate template.

10. The one or more non-transitory machine-readable media of claim 9 , wherein each of the image modules comprises an image, and one or more of the image modules comprises at least one of an information bar and padding, the information bar for displaying information relating a corresponding image, the padding comprising pixels adjacent to a corresponding image and apart from the corresponding image.

11. The one or more non-transitory machine-readable media of claim 9 , wherein, each of the candidate templates comprises slots to accommodate image modules; and

wherein filling the candidate templates comprises placing image modules in slots of the candidate templates.

12. The one or more non-transitory machine-readable media of claim 11 , wherein the operations further comprise:

associating annotations with the layout that assign image module attributes to structural features of the candidate templates;

wherein the candidate templates are filled based on the annotations.

13. The one or more non-transitory machine-readable media of claim 12 , wherein the image module attributes comprise shapes of the image modules, and wherein the structural features of the candidate templates comprise a number of columns or rows in a template.

14. The one or more non-transitory machine-readable media of claim 9 , wherein the one or more constraints correspond to sizes of the image modules; and

wherein the number of possible permutations is determined based on an overall number of the image modules and a number of the first image modules.

15. The one or more non-transitory machine-readable media of claim 9 , wherein determining that a set of the image modules will fit a layout comprises:

determining a number of image modules that can be included in a layout; and

selecting the image modules from among a set of received image modules, the selected image modules being a number of image modules that can be included in the layout.

16. The one or more non-transitory machine-readable media of claim 9 , wherein filling candidate templates with image modules comprises identifying a largest image module among the image modules, and identifying a template having a smallest slot that can accommodate the largest image module.

17. A system comprising a processor in electrical communication with a non-transitory memory element storing instructions that, when executed, cause the processor to execute the steps comprising:

receiving data corresponding to image modules;

determining that the image modules will fit a layout;

assigning image modules to the layout, wherein assigning comprises:

assigning points to the image modules based on sizes of the image modules, where the image modules comprise first image modules and second image modules, the first image modules being larger than the second image modules, each first image module being assigned more points than a second image module;

assigning, to the layout, image modules from the first image modules;

determining a score based on a number of points for the layout, the number of points for the layout being based on a sum of points assigned to the first image modules assigned to the layout; and

assigning either first image modules to the layout or second image modules to the layout based on whether the score exceeds a threshold;

determining a number of possible permutations of the image modules given one or more constraints associated with images in the image modules;

selecting a number of candidate templates to accommodate the layout, the number of candidate templates being based on the number of permutations;

filling candidate templates with image modules from the set;

receiving an input selecting one of the candidate templates containing image modules; and

outputting data for the selected candidate template, the data for generating a display of the selected candidate template.

18. The system of claim 17 , wherein each of the image modules comprises an image, and one or more of the image modules comprises at least one of an information bar and padding, the information bar for displaying information relating a corresponding image, the padding comprising pixels adjacent to a corresponding image and apart from the corresponding image.

19. The system of claim 17 , wherein, each of the candidate templates comprises slots to accommodate image modules; and

wherein filling the candidate templates comprises placing image modules in slots of the candidate templates.

20. The system of claim 19 , wherein the layout engine is operable to perform operations comprising:

associating annotations with the layout that assign image module attributes to structural features of the candidate templates;

wherein the candidate templates are filled based on the annotations.

21. The system of claim 20 , wherein the image module attributes comprise shapes of the image modules, and wherein the structural features of the candidate templates comprise a number of columns or rows in a template.

22. The system of claim 17 , wherein the one or more constraints correspond to sizes of the image modules; and

wherein the number of possible permutations is determined based on an overall number of the image modules and a number of the first image modules.

23. The system of claim 17 , wherein determining that a set of the image modules will fit a layout comprises:

determining a number of image modules that can be included in a layout; and

selecting the image modules from among a set of received image modules, the selected image modules being a number of image modules that can be included in the layout.

24. The system of claim 17 , wherein filling candidate templates with image modules comprises identifying a largest image module among the image modules, and identifying a template having a smallest slot that can accommodate the largest image module.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044566/0657 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2012
From: SHARMA, JAYESH; BANKHEAD, PAUL; RIBAS, RAPHAEL H.
To: GOOGLE INC.
Reel/Frame 029285/0628 →