Форум: "Основная";
Текущий архив: 2007.05.27;
Скачать: [xml.tar.bz2];
ВнизМатематика наложения Найти похожие ветки
← →
Ricks © (2007-04-02 11:03) [0]Есть две картинки, содержащие alpha канал (будем считать это слоями). Как наложить их друх на друга так, чтобы цвета этих точек усреднялись должным образом. Например:
если на полупрозрачный (50%) черный наложить 50% белый то получим 75% цвет (170, 170, 170), если же наоборот — получим 75% цвет (85, 85, 85).
Значение альфа вычисляется по формуле:
A = (a0/255 + (1-a0/255)*a1/255) * 255;
А вот как быть с цветом?
← →
Ricks © (2007-04-02 12:01) [1]Хотя может быть и формула для alpha неправильная... :(
← →
oxffff © (2007-04-02 12:07) [2]displayColor = sourceColor* alpha/255 + backgroundColor* (255 – alpha) /255
← →
oxffff © (2007-04-02 12:08) [3]Примени эту формулу для R,G,B составляющих по отдельности
← →
Ricks © (2007-04-02 12:25) [4]Спасибо, но эта формула не работает.
Смотри:
если фон (0, 0, 0, 0) (полность. прозрачный черный цвет) и на него мы накладываем 50% (255, 255, 255, 127) белый то получим в итоге:
255 * 127 / 255 + {0 * (255 - 127) / 255]|=0} = 127
А должны были получить (255, 255, 255, 127)!
← →
TRUNK © (2007-04-02 12:29) [5]NewAlpha = 1 - (1-Alpha_1)*(1-Alpha_2);
NewRed = (Red_1*Alpha_1*(1-Alpha_2) + Red_2*Alpha_2)/NewAlpha
NewGreen = (Green_1*Alpha_1*(1-Alpha_2) + Green_2*Alpha_2)/NewAlpha
NewBlue = (Blue_1*Alpha_1*(1-Alpha_2) + Blue_2*Alpha_2)/NewAlpha
P.S. Все значения в диапазоне [0..1]
← →
Ricks © (2007-04-02 12:32) [6]Сейчас испытаю!
← →
ЮЮ © (2007-04-02 12:33) [7]> А должны были получить (255, 255, 255, 127)!
если он полупрозрачный, откуда (255, 255, 255)?
(127, 127, 127) как раз и означает, что черезн него "просвечивается" черный. В результате имеем "серый"
← →
Ricks © (2007-04-02 12:37) [8]
> ЮЮ
> "просвечивается" черный
но ведь черный то — полностью прозрачный, т.е никакого черного там не должно быть!
← →
Ricks © (2007-04-02 12:39) [9]
> TRUNK ©
СПАСИБО тебе огромное!!!!
← →
TRUNK © (2007-04-02 12:42) [10]Перед автором стоит задача преобразовать два последовательных наложение в одно, которое приведёт к эквивалентному результату.
> если он полупрозрачный, откуда (255, 255, 255)?
> (127, 127, 127) как раз и означает, что черезн него "просвечивается"
> черный
Наложение происходит на полностью прозрачный чёрный цвет, т.е. его как бы и нет, в результате у нас остаётся только наложенный белый.
← →
oxffff © (2007-04-02 13:38) [11]
> А должны были получить (255, 255, 255, 127)!
Кто должен?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2007.05.27;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.062 c