I have a script that extracts the mostly commonly occurring colors from an image. I want to store this data in MySQL then be able to pull out images based on the clicking of a color. For example if the user clicks on a red color I want to pull out other images that have a high count for "red" colors. I'm not sure how to search within a range of color values or what values to actually store in the database. Ideally I'd like to present the user with a gradient band and have them click on it to find images that are close in color to what they clicked.
Any help, pointers, or keywords I can used to Google for more information would be userful.
Take a look at my answer to this question. Basically you store the hex values of each component separately, then you can search for them with a simple mySQL query. I suppose yo could populate a table by iterating every color in an image and putting in the top x colors to the table.
select imageName from imageColors where ( ABS(red - $redHex) + ABS(blue-$blueHex) + ABS(green - $greenHex) < $threshold)
$threshold
is the maximum distance between the colors.
My first thought is that your best bet is to use 6-digit hex, and store each component (red, green, blue) in a separate field.
Looking for something "red"? Select those records with a high red count, and relatively low green and blue, and then be ready to tweak your cutoffs.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With