У меня есть сценарий, который извлекает главным образом обычно происходящие цвета из изображения. Я хочу хранить эти данные в MySQL затем смочь вытащить изображения на основе нажатия цвета. Например, если пользователь нажимает на красный цвет, я хочу вытащить другие изображения, которые имеют высокий счет для "красных" цветов. Я не уверен, как искать в диапазоне значений цвета или что значения на самом деле сохранить в базе данных. Идеально я хотел бы подарить пользователю полосу градиента и сделать, чтобы они нажали на него для нахождения изображений, которые близки в цвете к тому, что они нажали.
Любая справка, указатели или ключевые слова, я могу привыкший к Google для получения дополнительной информации, были бы userful.
Моя первая мысль: лучше всего использовать шестизначное шестнадцатеричное и хранить каждый компонент (красный, зеленый, синий) в отдельном поле.
Ищете что-нибудь «красное»? Выберите записи с большим количеством красного и относительно низким зеленым и синим, а затем будьте готовы настроить свои отсечки.
Взгляните на мой ответ на этот вопрос . Обычно вы храните шестнадцатеричные значения каждого компонента отдельно, а затем можете искать их с помощью простого запроса mySQL. Я полагаю, вы могли бы заполнить таблицу, перебирая каждый цвет в изображении и помещая в таблицу верхние x цветов.
выберите imageName из imageColors, где (ABS (красный - $ redHex) + ABS (синий- $ blueHex) + ABS (зеленый - $ greenHex) <$ threshold)
$ threshold
- максимальное расстояние между цвета.
На PHPclasses.org есть класс , который обещает найти «доминирующий цвет». Сам я не использовал его, поэтому ничего не могу сказать о его качестве, но он был проверен классами PHP, поэтому обычно его стоит проверить.