Форум: "Основная";
Текущий архив: 2005.07.31;
Скачать: [xml.tar.bz2];
ВнизВопрос о режимах смешивания изображений. Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.033 c