Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.047 c
2-1178584148
dreamse
2007-05-08 04:29
2007.05.27
Подскажите функцию стандартную для проверки и добавления


1-1175194336
dreamse
2007-03-29 22:52
2007.05.27
Как запустить ярлык созданый с сетевого подключения ?


2-1178813708
Angelka
2007-05-10 20:15
2007.05.27
Рабочая группа компьютера


15-1177666772
Ega23
2007-04-27 13:39
2007.05.27
Умер Мстислав Растропович.


6-1164016111
Aleksandr.
2006-11-20 12:48
2007.05.27
Как можно хотя бы узнать программно, открыт ли доступ к порту?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский