Форум: "Начинающим";
Текущий архив: 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