![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос о режимах смешивания изображений. [D7, WinXP]
Line © (2005-07-09 20:31:00)Вопрос о режимах смешивания изображений.
----------------------------------------------------
Я буду, признателен, если мне кто-нибудь подскажет
реализацию режима смешивания изображений «Яркость»,
представленного в Фотошопе ( Photoshop ).
А если быть точнее, чему равны R, G, B конечного
изображения после смешивания.
----------------------------------------------------
Заранее благодарен тем, кто ответил по вопросу!!!
Essence (2005-07-10 13:34:00) [1]Factor > 1 - увеличивает яркость, Factor < 1 - уменьшает её.
procedure Helligkeit(C:TCanvas; Faktor:Real);
var x, y: integer;
Color: LongInt;
R, G, B: Integer;
begin
with C do
for x:= ClipRect.Left to ClipRect.Right do
for y:= ClipRect.Top to ClipRect.bottom do
begin
Color:=ColorToRGB(Pixels[x,Y]);
R := Round(GetRValue(Color)*Faktor);
G := Round(GetGValue(Color)*Faktor);
B := Round(GetBValue(Color)*Faktor);
if R>255 then R:=255;
if G>255 then G:=255;
if B>255 then B:=255;
Pixels[x,Y]:=RGB(R,G,B);
end;
end;
lookin (2005-07-09 23:31:00) [2][4] line (09.07.05 23:30)
Тогда скорее я тебя не понял... Что я и говорил в [1]
line (2005-07-09 23:30:00) [3]о теории:
В режиме Luminosity (Яркость света) значения
яркости базового цвета замещаются значениями
яркости цвета рисования или слоя смешивания.
о практике
Давай попробуем уважаемый lookin
к яркому цвету прибавить яркий цвет
т.е. по твоей формуле:
RGBold := RGB( 197, 224, 252);
RGBdBrightness := осветленный RGB;
то
RGBnew := RGBold + RGBdBrightness,
я считаю получится очень яркий цвет!?!
Или я тебя не понял!!!
lookin (2005-07-09 22:53:00) [4][2] line (09.07.05 22:50)
В смысле?
line (2005-07-09 22:50:00) [5]Я и такой вариант пробовал,
для ярких цветов не проходит.
lookin (2005-07-09 20:58:00) [6]Может быть я чего-то не понимаю, но мне кажется, что если ввести величину dBrightness для каждого канала, то новые значения RGB будут такими.
Rnew = Rold + dBrightnessR
Gnew = Gold + dBrightnessG
Bnew = Bold + dBrightnessB