Главная страница
    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.04 c
2-1196251452
webpauk
2007-11-28 15:04
2007.12.23
Закрытие приложения


2-1196249888
Alex_C
2007-11-28 14:38
2007.12.23
Пересекаются ли две TRect области


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


4-1181301429
inex
2007-06-08 15:17
2007.12.23
информация о сетевом подключении


2-1195984219
m-kirill-2003
2007-11-25 12:50
2007.12.23
функция ord()





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