Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос о режимах смешивания изображений. [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


Наверх

Титульная страница Поиск, карта сайта Написать письмо