Главная страница
    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.043 c
2-1196243768
tytus
2007-11-28 12:56
2007.12.23
Как переделать запрос, чтобы вывелось то чего нету?


6-1176654315
privet2005
2007-04-15 20:25
2007.12.23
Клиент-сервер с одновременным подключением 100-1000 пользователей


2-1196079596
Kolan
2007-11-26 15:19
2007.12.23
А как закрыть свою программу?


2-1196152756
Ростик
2007-11-27 11:39
2007.12.23
Как правильно записывать числа типа флоат


2-1195897949
WebSQLNeederr
2007-11-24 12:52
2007.12.23
Использование ini для загрузки настроек програмы





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