Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.04;
Скачать: CL | DM;

Вниз

ПРИВЕТ ВСЕМ! Не подскажите алгоритмик...   Найти похожие ветки 

 
@andrew ©   (2002-03-25 16:53) [0]

..., может кто сталкивался: есть панель, цвет которой можно менять, и есть текст на этой панели, цвет которого должен вычислятся в зависимости от цвета панели: либо белый, либо черный (по принципу чтоб был читабильным). Вот собственно алгоритм вычисления цвета текста не подскажите. Всем Спасибо!


 
Виктор Щербаков ©   (2002-03-25 17:02) [1]

Примерно так, но глюки с серым цветом. Их надо отдельно убирать.
Label1.Font.Color := RGB(not GetRValue(cl), not GetGValue(cl), not GetBValue(cl));
cl - цвет панели.


 
Andrews ©   (2002-03-25 17:05) [2]

Используй RGB-каналы для задания цвета по-идее должно работать, т.е. если цвет плашки R31 G26 B23 то цвет текста вычисляется так R=255-31 G255-26 B255-23


 
MBo ©   (2002-03-25 17:07) [3]

просто
Label1.Font.Color:=Panel.color Xor #FFFFFF;


 
MBo ©   (2002-03-25 17:09) [4]

пардон $FFFFFF


 
Виктор Щербаков ©   (2002-03-25 17:10) [5]

Это всё одно и то же, лучше скажите как ему быть со значениями цвета близкими к (128, 128, 128)


 
MBo ©   (2002-03-25 17:19) [6]

ну как-нибудь так
j:=Panel.color;
i:=j Xor $FFFFFF;
k:=i xor j;
if (k and $FF)+((k shr 2) and $FF)+((k shr 4) and $FF)>60
then label1.font.color:=i
else label1.font.color:=clBlack;


 
AFROLOV   (2002-03-25 17:22) [7]

Можно наложить еще условие чтобы метрика разности цвета фона и цвета текста была больше некоторой величины. В качестве метрики можно взять например |Rf-Rt|+|Gf-Gt|+|Bf-Bt|. В случаях если вышепредложенные подходы не обеспечат должной величины метрики можно в качестве приемлемого решения взять первое полученное с помощью random и удовлетворяющее условию.



Страницы: 1 вся ветка

Текущий архив: 2002.04.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
7-9653
Gunya
2002-01-03 20:32
2002.04.04
Как послать на LPT сигнал определенной длительности?


3-9364
scordi
2002-03-10 03:30
2002.04.04
Народ! Как в PARADOXе заполнить поле типа Graphic или Memo? (подробнее про Blob поля или другие идеи...)!


3-9366
urii
2002-03-11 18:56
2002.04.04
RXlib


1-9566
DenKop
2002-03-24 15:14
2002.04.04
Извлечение иконок


14-9596
valievrf
2002-02-20 17:25
2002.04.04
СРОЧНО!!! ДЕЛО ИСКЛЮЧЕНИЯ И НЕ ИСКЛЮЧЕНИЯ!!!!