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

Вниз

Как узнать противоположный цвет?   Найти похожие ветки 

 
d@nger   (2007-11-28 08:52) [0]

Здравствуйте! Подскажите пожалуйста, как определить проивоположный цвет исходного цвета? например у белого - черный.... мне это надо для определения цвета шрифта на цветном фоне. Может стандартная функция есть...но я ее не нашел... Спасибо!


 
MBo ©   (2007-11-28 09:07) [1]

NewCol := OldCol xor #FFFFFF;
для части цветов будет работать плохо.


 
Johnmen ©   (2007-11-28 09:14) [2]


>  например у белого - черный....

А у красного например?


 
Virgo_Style ©   (2007-11-28 09:27) [3]

> Johnmen ©   (28.11.07 09:14) [2]
> А у красного например?


Зеленый?

А у серого (127,127,127)?


 
Anatoly Podgoretsky ©   (2007-11-28 09:31) [4]


> d@nger   (28.11.07 08:52)  

Дай определение противоположного цвета.


 
vegarulez ©   (2007-11-28 09:44) [5]

Anatoly Podgoretsky ©   (28.11.07 09:31) [4]
я думаю он имеет ввиду инверт цвета...


 
guav ©   (2007-11-28 09:46) [6]

> мне это надо для определения цвета шрифта на цветном фоне.

Для этого не надо выдумывать никакой противоположный цвет, нужно искать оптимальное сочетание цвета и фона.

Это может быть сделано по таблице.
Если таблице нет и надо попроще это реализовать оптимальным будет выбор между белым и чёрным в зависимости от яркости фона.
Типа так

function GetOptimalBkColor(AColor: TColor): TColor;
var
R, G, B: Word;
begin
R := GetRValue(AColor);
G := GetGValue(AColor);
B := GetBValue(AColor);
if 0.222*R + 0.707*G + 0.071*B <= 127 then
  Result := clWhite
else
  Result := clBlack;
end;


 
Jeer ©   (2007-11-28 09:47) [7]

Может речь об этом ?
http://www.artprojekt.ru/School/Painting/016.html


 
d@nger   (2007-11-28 11:03) [8]

Мне просто нужно было чтобы текст отчетливо читался, я пожалуй воспользуюсь советом guav [6]. Всем большое спасибо за помощь!


 
Правильный_Вася   (2007-11-28 11:57) [9]


> > А у красного например?Зеленый?

а для дальтоников?


 
Anatoly Podgoretsky ©   (2007-11-28 12:00) [10]


> я думаю он имеет ввиду инверт цвета...

А думать не надо, и чуть позже автор сказал, что ему нужен просто читаемый цвет на фоне другого, а это нельзя назвать противоположным.
Ему нужен совместимый цвет.


 
Virgo_Style ©   (2007-11-28 12:43) [11]

> Правильный_Вася   (28.11.07 11:57) [9]

Партия сказала - красный, значит - красный. И никаких дальтоников...


 
Anatoly Podgoretsky ©   (2007-11-28 15:20) [12]

А если это партия анархистов или белые?


 
PASZLIB   (2007-11-28 15:45) [13]

вдогонку вопрос как сделать цвет светлее ?

пока обхожусь так

c:=clBlack;
Form3.color:=c;
....

c:=c-500;
Form3.color:=c; делает серый
цветные пока не пробывал


 
Jeer ©   (2007-11-28 15:46) [14]

Добавь белого


 
Джо ©   (2007-11-28 15:55) [15]

> [13] PASZLIB   (28.11.07 15:45)
> вдогонку вопрос как сделать цвет светлее ?
>
> пока обхожусь так
>
> c:=clBlack;
> Form3.color:=c;
> ....
>
> c:=c-500;
> Form3.color:=c; делает серый
> цветные пока не пробывал


Под мои задачи когда-то подошла такая функция:

function Lighter(Color:TColor; Percent:Byte):TColor;
var
 R,
 G,
 B:Byte;
begin
 Color:=ColorToRGB(Color);
 R:=GetRValue(Color);
 G:=GetGValue(Color);
 B:=GetBValue(Color);
 R:=R+muldiv(255-R,Percent,100);
 G:=g+muldiv(255-G,Percent,100);
 B:=b+muldiv(255-B,Percent,100);
 Result:=RGB(R,G,B);
end;

Откуда содрал — не помню.


 
PASZLIB   (2007-11-28 16:04) [16]

Спасибо амигос Джо! сам бы не додумался


 
Anatoly Podgoretsky ©   (2007-11-28 16:14) [17]

> Jeer  (28.11.2007 15:46:14)  [14]

И немного розового


 
clickmaker ©   (2007-11-28 16:17) [18]


> [17] Anatoly Podgoretsky ©   (28.11.07 16:14)

розовый цвет; доверься ему, и пятен - нет
(с)



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

Форум: "Начинающим";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.046 c
15-1196145164
still-let
2007-11-27 09:32
2007.12.23
Экспертные системы


2-1196057501
simon
2007-11-26 09:11
2007.12.23
Unicode в базе данных


3-1187167819
bss
2007-08-15 12:50
2007.12.23
Сортировка по llokup-полям


15-1195814417
Cyrax
2007-11-23 13:40
2007.12.23
Оптимальный способ задания ширины столбцов таблицы.


11-1181400464
Vladimir Kladov
2007-06-09 18:47
2007.12.23
Версия 2.66





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский