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