Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Есть цвет фона, надо вычислить наиболее контрастный цвет для [D7]


Страницы:   1 2 3

Вин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]

инвертируй цвет фона


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо