Building a palette of colors based on human color preferences
First Claim
1. A computer-implemented method for generating a color palette, the computer-implemented method comprising:
- under control of a hardware computing device configured with specific computer-executable instructions,obtaining a first input color and a second input color;
determining a first input color range based at least in part on a first color distance from the first input color in a color space and a second input color range based at least in part on a second color distance from the second input color in the color space;
receiving a plurality of color palettes, each of the plurality of color palettes having a plurality of colors and a rating;
identifying one or more affiliated color palettes among the plurality of color palettes, wherein an affiliated color palette has at least one of;
a first color within the first input color range or a second color within the second input color range, wherein identifying the one or more affiliated color palettes further comprises;
calculating an integer search range, wherein calculating the integer search range further comprises interleaving bits from at least one of the first input color range or the second input color range;
initiating a search of a data store based at least in part on a search query comprising the integer search range as a search parameter, the data store comprising a record associated with at least one indexed integer color value; and
receiving a search result from the data store, the search result comprising a first record associated with a first indexed integer color value for at least one of the first color or the second color, the first record further associated with a first color palette of the one or more affiliated color palettes;
generating a list of a plurality of affiliated colors, wherein an affiliated color is a color included in an affiliated color palette and the affiliated color is outside at least one of;
the first input color range or the second input color range;
calculating a first cumulative weight and a second cumulative weight of each affiliated color in the list of the plurality of affiliated colors, the first cumulative weight corresponding to a first aggregation of one or more ratings of the one or more affiliated color palettes having the affiliated color and the first color, the second cumulative weight corresponding to a second aggregation of one or more ratings of the one or more affiliated color palettes having the affiliated color and the second color;
calculating an adjusted weight of each affiliated color, wherein calculating the adjusted weight further comprises;
scaling a respective cumulative weight by a total number of the one or more affiliated color palettes having the affiliated color and at least one of;
the first color or the second color; and
multiplying the first cumulative weight and the second cumulative weight;
selecting a subset of affiliated colors from the plurality of affiliated colors based at least in part on the adjusted weight of each affiliated color from the plurality of affiliated colors; and
causing presentation of the subset of affiliated colors in a user interface.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods are described to generate a color palette with color combinations based on human color preferences. One or more input colors can be used to determine affiliated colors based on the presence of colors in color palettes that have been voted on and/or ranked by a community of users. Each affiliated color can be weighted, normalized, and ordered based at least in part on the level of preference for the color palette to which it belongs and the relative popularity of the input colors. A color from the ordered affiliated colors can be selected and added to the custom palette of colors. With the addition of a color, the ordered affiliated colors can be updated to further present colors for inclusion in the custom color palette.
-
Citations
20 Claims
-
1. A computer-implemented method for generating a color palette, the computer-implemented method comprising:
under control of a hardware computing device configured with specific computer-executable instructions, obtaining a first input color and a second input color; determining a first input color range based at least in part on a first color distance from the first input color in a color space and a second input color range based at least in part on a second color distance from the second input color in the color space; receiving a plurality of color palettes, each of the plurality of color palettes having a plurality of colors and a rating; identifying one or more affiliated color palettes among the plurality of color palettes, wherein an affiliated color palette has at least one of;
a first color within the first input color range or a second color within the second input color range, wherein identifying the one or more affiliated color palettes further comprises;calculating an integer search range, wherein calculating the integer search range further comprises interleaving bits from at least one of the first input color range or the second input color range; initiating a search of a data store based at least in part on a search query comprising the integer search range as a search parameter, the data store comprising a record associated with at least one indexed integer color value; and receiving a search result from the data store, the search result comprising a first record associated with a first indexed integer color value for at least one of the first color or the second color, the first record further associated with a first color palette of the one or more affiliated color palettes; generating a list of a plurality of affiliated colors, wherein an affiliated color is a color included in an affiliated color palette and the affiliated color is outside at least one of;
the first input color range or the second input color range;calculating a first cumulative weight and a second cumulative weight of each affiliated color in the list of the plurality of affiliated colors, the first cumulative weight corresponding to a first aggregation of one or more ratings of the one or more affiliated color palettes having the affiliated color and the first color, the second cumulative weight corresponding to a second aggregation of one or more ratings of the one or more affiliated color palettes having the affiliated color and the second color; calculating an adjusted weight of each affiliated color, wherein calculating the adjusted weight further comprises; scaling a respective cumulative weight by a total number of the one or more affiliated color palettes having the affiliated color and at least one of;
the first color or the second color; andmultiplying the first cumulative weight and the second cumulative weight; selecting a subset of affiliated colors from the plurality of affiliated colors based at least in part on the adjusted weight of each affiliated color from the plurality of affiliated colors; and causing presentation of the subset of affiliated colors in a user interface. - View Dependent Claims (2, 3, 4, 5, 6)
-
7. A computer-implemented method comprising:
under control of a hardware computing device configured with specific computer-executable instructions, identifying one or more affiliated color palettes, wherein an affiliated color palette is a color palette having at least one of;
a first color within a first input color range of a first input color in a color space or a second color within a second input color range of a second input color in the color space, each of the one or more affiliated color palettes having a rating, wherein identifying the one or more affiliated color palettes further comprises;calculating an integer search range, wherein calculating the integer search range further comprises interleaving bits from at least one of the first input color range or the second input color range; initiating a search of a data store based at least in part on a search query comprising the integer search range as a search parameter, the data store comprising a record associated with at least one indexed integer color value; and receiving a search result from the data store, the search result comprising a first record associated with a first indexed integer color value for at least one of the first color or the second color, the first record further associated with a first color palette of the one or more affiliated color palettes; identifying a plurality of affiliated colors in the one or more affiliated color palettes; calculating a first cumulative weight and a second cumulative weight of each affiliated color of the plurality of affiliated colors, the first cumulative weight corresponding to a first aggregation of one or more ratings of the one or more affiliated color palettes having the affiliated color and the first color, the second cumulative weight corresponding to a second aggregation of one or more ratings of the one or more affiliated color palettes having the affiliated color and the second color; calculating an adjusted weight of each affiliated color, wherein calculating the adjusted weight further comprises; scaling a respective cumulative weight by a total number of the one or more affiliated color palettes having the affiliated color and at least one of;
the first color or the second color; andmultiplying the first cumulative weight and the second cumulative weight; selecting a subset of affiliated colors from the plurality of affiliated colors based at least in part on the adjusted weight of each affiliated color of the plurality of affiliated colors; and providing the subset of the affiliated colors. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16)
-
17. A system comprising:
-
a data store configured to store computer-executable instructions; and a hardware processor in communication with the data store, the hardware processor configured to execute the computer-executable instructions to at least; identify one or more affiliated color palettes, wherein an affiliated color palette is a color palette having at least one of;
a first color within a first input color range of a first input color in a color space or a second color within a second input color range of a second input color in the color space, each of the one or more affiliated color palettes having a rating, wherein to identifying the one or more affiliated color palettes further comprises;calculating an integer search range, wherein calculating the integer search range further comprises interleaving bits from at least one of the first input color range or the second input color range; initiating a search of a data store based at least in part on a search query comprising the integer search range as a search parameter, the data store comprising a record associated with at least one indexed integer color value; and receiving a search result from the data store, the search result comprising a first record associated with a first indexed integer color value for at least one of the first color or the second color, the first record further associated with a first color palette of the one or more affiliated color palettes; identify a plurality of affiliated colors from the one or more affiliated color palettes; calculate a first cumulative weight and a second cumulative weight of each affiliated color of the plurality of affiliated colors, the first cumulative weight corresponding to a first aggregation of one or more ratings the of the one or more affiliated color palettes having the affiliated color and the first color, the second cumulative weight corresponding to a second aggregation of one or more ratings of the one or more affiliated color palettes having the affiliated color and the second color; calculate an adjusted weight of each affiliated color, wherein calculating the adjusted weight further comprises; scaling a respective cumulative weight by a total number of the one or more affiliated color palettes having the affiliated color and at least one of;
the first color or the second color; andmultiplying the first cumulative weight and the second cumulative weight; select a subset of affiliated colors from the plurality of affiliated colors based at least in part on the adjusted weight of each affiliated color from the plurality of affiliated colors; and provide the subset of affiliated colors. - View Dependent Claims (18, 19)
-
-
20. A non-transitory computer readable storage medium storing computer-executable instructions that when executed by a processor perform operations comprising:
-
identifying one or more affiliated color palettes, wherein an affiliated color palette is a color palette having at least one of;
a first color within a first input color range of a first input color in a color space or a second color within a second input color range of a second input color in the color space, each of the one or more affiliated color palettes having a rating, wherein identifying the one or more affiliated color palettes further comprises;calculating an integer search range, wherein calculating the integer search range further comprises interleaving bits from at least one of the first input color range or the second input color range; initiating a search of a data store based at least in part on a search query comprising the integer search range as a search parameter, the data store comprising a record associated with at least one indexed integer color value; and receiving a search result from the data store, the search result comprising a first record associated with a first indexed integer color value for at least one of the first color or the second color, the first record further associated with a first color palette of the one or more affiliated color palettes; identifying a plurality of affiliated colors in the one or more affiliated color palettes; calculating a first cumulative weight and a second cumulative weight of each affiliated color of the plurality of affiliated colors, the first cumulative weight corresponding to a first aggregation of one or more ratings of the one or more affiliated color palettes having the affiliated color and the first color, the second cumulative weight corresponding to a second aggregation of one or more ratings of the one or more affiliated color palettes having the affiliated color and the second color; calculating an adjusted weight of each affiliated color, wherein calculating the adjusted weight further comprises; scaling a respective cumulative weight by a total number of the one or more affiliated color palettes having the affiliated color and at least one of;
the first color or the second color; andmultiplying the first cumulative weight and the second cumulative weight; selecting a subset of affiliated colors from the plurality of affiliated colors based at least in part on the adjusted weight of each affiliated color of the plurality of affiliated colors.
-
Specification