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

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

Помогите посчитать RGBA пиксель


FF ©   (2011-06-17 12:06:00) 

Здравствуйте. Помогите посчитать сабж.
Имеются четырех байтный массив, тип byte. Будем считать, что это пиксель RGBA. Правила канала А: 0 - абсолютная прозрачность, FF - нету прозрачности. От картинка http://zalil.ru/31280064

Теперь заливаю его цветом 4DB394 с прозрачностью 7F (байты идут в том же порядке, как и на картинке). Так как была 100 процентная прозрачность - то итог мне думается будет такой http://zalil.ru/31280070

Теперь же мне нужно поверх этого пикселя нарисовать еще один. Например 2D14454 с прозрачностью 33. И тут я застопорился. Как в этом случае считать пиксель?

В обычном RGB  я бы для каждого канала считал так: (прозрачность приведу в процентах).

pr = 50 (прозрачность %)
isxC = 127 (Текщее значение)
AddC = 255 (Наложить со смешиванием в процентном соотношении pr)
MaxC = 255 (Максимально возможное значение)

OutC = ((MaxC-isxC)/100*pr)+ (addC/100*pr)

С альфой совсем запутался ((


FF   (2011-06-23 00:07:00) [1]

Удалено модератором


FF   (2011-06-17 13:13:00) [2]


> Омлет ©   (17.06.11 12:50) [2]
> http://en.wikipedia.org/wiki/Alpha_compositing


Спасибо! А то я раньше это не видел, а главное понял... угу


Омлет   (2011-06-17 12:50:00) [3]

http://en.wikipedia.org/wiki/Alpha_compositing


FF   (2011-06-17 12:07:00) [4]

Например 2D14454 с прозрачностью 33

читать как Например 2D1454 с прозрачностью 33


Наверх

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