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

Вниз

Вопрос о режимах смешивания изображений.   Найти похожие ветки 

 
Line   (2005-07-09 20:31) [0]

Вопрос о режимах смешивания изображений.
----------------------------------------------------
Я буду, признателен, если мне кто-нибудь подскажет
реализацию режима смешивания изображений «Яркость»,
представленного в Фотошопе ( Photoshop ).
А если быть точнее, чему равны R, G, B конечного
изображения после смешивания.
----------------------------------------------------
Заранее благодарен тем, кто ответил по вопросу!!!


 
lookin ©   (2005-07-09 20:58) [1]

Может быть я чего-то не понимаю, но мне кажется, что если ввести величину dBrightness для каждого канала, то новые значения RGB будут такими.

Rnew = Rold + dBrightnessR
Gnew = Gold + dBrightnessG
Bnew = Bold + dBrightnessB


 
line   (2005-07-09 22:50) [2]

Я и такой вариант пробовал,
для ярких цветов не проходит.


 
lookin ©   (2005-07-09 22:53) [3]

[2] line   (09.07.05 22:50)

В смысле?


 
line   (2005-07-09 23:30) [4]

о теории:
В режиме Luminosity (Яркость света) значения
яркости базового цвета замещаются значениями
яркости цвета рисования или слоя смешивания.

о практике
Давай попробуем уважаемый lookin
к яркому цвету прибавить яркий цвет
т.е. по твоей формуле:
RGBold := RGB( 197, 224, 252);
RGBdBrightness := осветленный RGB;
то
RGBnew := RGBold + RGBdBrightness,
я считаю получится очень яркий цвет!?!
Или я тебя не понял!!!


 
lookin ©   (2005-07-09 23:31) [5]

[4] line   (09.07.05 23:30)

Тогда скорее я тебя не понял... Что я и говорил в [1]


 
Essence   (2005-07-10 13:34) [6]

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;



Страницы: 1 вся ветка

Текущий архив: 2005.07.31;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.034 c
9-1112952150
Venom Spawn
2005-04-08 13:22
2005.07.31
Генерация карты


3-1118918805
anarhi
2005-06-16 14:46
2005.07.31
Oracle и сеть


1-1121297550
JohnSmith
2005-07-14 03:32
2005.07.31
Как создать динамический массив потоков ?


14-1121228120
rentgen
2005-07-13 08:15
2005.07.31
Compile &amp; Build


14-1120538579
Магнум
2005-07-05 08:42
2005.07.31
Коэффициент умственного развития – «АйКью»