![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Есть цвет фона, надо вычислить наиболее контрастный цвет для [D7]
Вин2 © (2005-06-12 02:12:00)текста на нём. Как это можно сделать ?
Anatoly Podgoretsky (2005-06-12 12:26:00) [41]На 6 элементов of TColor, объединяются страршии биты RGB как индекс таблицы, получаются индекс от 0 до 5. Гарантрировано не только контрасность, но и совместимость цветов по вкусу.
Если такая точность недостаточно, то тогда по два старших бита и таблица на 64 элемента, но это уже перебор.
Alx2 (2005-06-12 12:24:00) [42]Если наиболее контрастный понимать как наиболее удаленный от заданного в системе RGB, то таких цветов будет всего 8 (углы куба в координатах RGB).
Соответственно, находить его можно как
if r>127 then r:=0 else r:=255;
if g>127 then g:=0 else g:=255;
if b>127 then b:=0 else b:=255;
ContrastColor := RGB(r,g,b);
Или, что одно и тоже:
r := (1-(r shr 7))*255
g := (1-(g shr 7))*255
b := (1-(b shr 7))*255
Ученик (2005-06-12 12:17:00) [43]Присоединяюсь к вопросу Вин2 (12.06.05 02:12)
Вариант -=XP=- © (12.06.05 07:52) [4] хорош, но, например, для RGB (0, 255, 0) - светло-зеленый, будет выдаваться clWhite, хотя (на первый взгляд) лучше смотрится черный.
>Anatoly Podgoretsky © (12.06.05 11:46) [5]
Какого плана таблица ?
Anatoly Podgoretsky (2005-06-12 11:46:00) [44]Таблица соответсвия
-=XP=- (2005-06-12 07:52:00) [45]Исходя из того, что наиболее контрастные и наиболее сочетаемые с другими цвета - черный и белый:
if (GetRValue(Color) + GetGValue(Color) + GetBValue(Color)) >= 384 then
BackColor := clBlack
else
BackColor := clWhite;
P.S. Иначе надо ударяться в колористику, работать с таблицами цветов, искать формулы счастья созерцания экранного разноцветия - этого, боюсь, многие пользователи не поймут.
P.P.S. Хотя, не исключено, что существует какая-то простенькая формулка. Ибо все гениальное - просто. ;)
Defunct (2005-06-12 04:50:00) [46]Вин2 (12.06.05 04:24) [2]
Пробовать разные цвета, если "на ухо наступил медведь и вкуса нет", тогда обращаться за помощью к дизайнерам.
Вин2 (2005-06-12 04:24:00) [47]Инвертируй серый цвет.
ssk (2005-06-12 02:14:00) [48]инвертируй цвет фона