Альфа-смешение (Windows GDI)
Альфа-смешение используется для отображения альфа-растрового изображения, то есть растрового изображения с прозрачными или полупрозрачными пикселями. В дополнение к красному, зеленому и синему цветовым каналам каждый пиксель в альфа-растровом рисунке имеет компонент прозрачности, известный как альфа-канал. Альфа-канал обычно содержит столько битов, сколько цветной канал. Например, 8-разрядный альфа-канал может представлять 256 уровней прозрачности: от 0 (все растровое изображение прозрачно) до 255 (все растровое изображение является непрозрачным).
Механизмы альфа-смешения вызываются путем вызова AlphaBlend, который ссылается на структуру BLENDFUNCTION .
Альфа-значения на пиксель поддерживаются только для BI_RGB со значением 32 пикселей. Эта формула определяется следующим образом:
typedef struct {
BYTE Blue;
BYTE Green;
BYTE Red;
BYTE Alpha;
};
Он представлен в памяти, как показано в следующей таблице.
31:24
23:16
15:08
07:00
Коэффициент альфа
Красный
Зеленый
Синий
Точечные изображения также могут отображаться с коэффициентом прозрачности, применяемым ко всему растровом рисунку. Любой формат растрового изображения можно отобразить с глобальным константным альфа-значением, задав SourceConstantAlpha в структуре BLENDFUNCTION . Глобальное значение альфа-канала константы имеет 256 уровней прозрачности: от 0 (все растровое изображение полностью прозрачно) до 255 (все растровое изображение полностью непрозрачно). Глобальное постоянное альфа-значение объединяется со значением альфа-канала для каждого пикселя.
Пример см. в разделе Альфа-смешивание растрового изображения.