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

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.056 c
15-1195904689
Petr V. Abramov
2007-11-24 14:44
2007.12.23
Болтовня по Skype


15-1195595470
Германн
2007-11-21 00:51
2007.12.23
Ещё один вопрос о обновлении Windows


3-1187100144
Мистик
2007-08-14 18:02
2007.12.23
прямой доступ


3-1187156508
bss
2007-08-15 09:41
2007.12.23
Oracle+ADO, Формат даты


2-1196319865
Dennis I. Komarov
2007-11-29 10:04
2007.12.23
GetApplicationDataPath





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