![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Дано:
массив colours с цветами (0x55ff55, 0xaadd55, 0x884545, 0xFFFF00 .... ); любой цвет myColour (например 0x00аа00) Найти: цвет в массива colours самый близкий (визуально наиболее похожий) на цвет myColour. Условие "самый близкий" я вижу как наибольшую вероятность не различить эти цвета глазом. Разбиение uint на значения каналов и сравнение этих значений наводят меня на печальные мысли ![]() Что же взять за критерий "похожести" цветов в цифровом формате? Последний раз редактировалось miramax; 28.10.2006 в 06:27. |
|
|||||
|
Например цвет 888888 визуально ближе к aaaaaa чем к aa88aa, а если сравнивать каналы то получим что цвет 888888 ближе к aa88aa... как их правильно сравнить-то?
Последний раз редактировалось miramax; 28.10.2006 в 08:38. |
|
|||||
|
Отлично, сэнкс за наводку.
![]() Вот нашёл, __etc написал полезную штуку на эту тему: http://dev.etcs.ru/blog/as2/ru/etcs/draw/colorobject/ |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
выделить канал можно следующим способом
|
|
|||||
|
Цитата:
Я не понял твоей коснтрукции. Делаю вот так но с каналами всё равно не подходит вариант, нужно сравнивать параметры HSB. Результаты более правдоподобные Последний раз редактировалось miramax; 28.10.2006 в 08:48. |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Цитата:
R.делаем сдвиг на 16(биты которые выходят за рамки убиваются), остается красный G.--сдвиг на 8 (восемь убиваются) ----оставлям побитовым "&" нужные 8 B.оставляем "&" нужные 8 |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
2 miramax: Твоя функция в 25 раз медленнее работает и самое главное в некоторых случаев она будет работать не правильно (например если был задан цвет 0x00FFFF или 0x055555).
2 udaaff: я не понял смысла операции color >> 0 |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
miramax, цвет строкой должен быть задан, numberToHEX у меня в классе возвращает строку, которая потом уже разбивается на подстроки.
Переделаю пару функций в ColorObject, чтобы быстрее работало… UPD: можешь обновиться, я там как раз переделал на битовое сравнение. Последний раз редактировалось etc; 28.10.2006 в 13:00. |
![]() |
![]() |
Часовой пояс GMT +4, время: 12:08. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|