Создание прозрачного растрового изображения с GDI?

Я хочу реализовать систему разделения на уровни в своем приложении, и размышление создавало набор прозрачных растровых изображений, добавляя содержание к ним затем блитирование их друг на друге, как это может быть сделано, не устанавливая каждый пиксель на (0,0,0,0). Я использую Чистый win32, не MFC, спасибо.

9
задан jmasterx 28 April 2010 в 03:22
поделиться

2 ответа

Что вы имеете в виду под прозрачным?

Если вы ищете частичную (или полную) прозрачность, тогда AlphaBlend - это API GDI, который следует использовать. Загрузка растровых изображений с альфа-каналом сложна - единственный формат, поддерживаемый базовым API Windows для загрузки растровых изображений с альфа-каналом, - это файл .BMP 32bpp с альфа-каналом в верхних 8 битах каждого байта, а младшие байты должны быть предварительно умножены.

Можно использовать GDI + для загрузки различных форматов изображений с альфа-каналом - PNG, вероятно, лучше всего подходит и переносится на 32bpp DIBSection, чтобы вы могли использовать AlphaBlend и старые функции GDI.

Если вам нужна простая маска прозрачности, а не полный альфа-канал, вы можете использовать TransparentBlt вместе с цветовым ключом, чтобы замаскировать области растрового изображения при его копировании.

11
ответ дан 4 December 2019 в 21:09
поделиться

GDI не поддерживает прозрачность в растровых изображениях и в целом. Рассмотрите возможность использования GDI + .

-1
ответ дан 4 December 2019 в 21:09
поделиться