Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.04.04;
Скачать: [xml.tar.bz2];

Вниз

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

 
@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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.005 c
1-9585
MARcoDEN
2002-03-24 08:20
2002.04.04
Запуск программы


1-9540
kvazar
2002-03-24 09:24
2002.04.04
поиск узла в тривью по тексту


1-9509
VID
2002-03-23 01:43
2002.04.04
Ресурс повреждён


4-9683
Basaev
2002-02-03 03:52
2002.04.04
Как закрыт другую програму из своей


1-9442
dth
2002-03-25 11:46
2002.04.04
Окошко как в Delphi при ошибках кода





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский