Как хранить и искать цвет в MySQL?

Привет. Имеется задача после выбора пользователем основного цвета изображения сохранить его в базу, а за тем выполнять поиск по оттенкам этого цвета (ну то есть близкие по значению, точь-в-точь ведь будут единицы).

Я предполагаю использовать простую математику и манипуляции с форматом rgb, но понятия не имею, как лучше хранить в БД цвет, чтобы как-то по нему искать. 3 столбца - плохая идея (ИМХО), длинное целое - нецелесообразно, а hex формат в mysql сохраняется только как строка, ибо не умеет 16-ричные числа.

В общем нужна идея.
  • Вопрос задан
  • 4141 просмотр
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Если вам нужно искать по оттенку логичнее было бы конвертировать RGB в HSV (Hue, Saturation, Value) и искать по компоненте HUE (оттенок). И никакой математики в запросах, индексы, быстро и просто. Вообще RGB плохо подходит для задачи поиска цвета. Его хорошо понимает видиокарта и монитор. Принтеры вот тоже не любят RGB, им больше нравится cmyk.

И хоть я и против RGB для такой задачи и вообще для хранения оного для выборов...
3 столбца - плохая идея (ИМХО)

3 колонки TINYINT и все unsigned. Это 3ubyte. Три значение [0-255]. То что нужно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы