Как конвертировать DIB в TPNGObject?
У меня есть ручка DIB. Как я могу преобразовать это в TPNGObject
с сохранением своей прозрачности?
РЕДАКТИРОВАТЬ: я использую метод 2 в этом решении здесь
но растровое изображение не является прозрачным, даже если я установил его Transparent
Флаг с правдой
1 ответ
Я думаю, что это собирается начать что-то вроде этого:
var
lpbi: PBitmapInfoHeader;
begin
// Get DIB header info from DIB handle
lpbi := PBitmapInfoHeader(GlobalLock(hdIB));
end;
Затем, если это 32-битное изображение, у него будет альфа-канал, который вы будете использовать для своих данных прозрачности.
Затем вы копируете данные RGB на линию развертки объекта PNG, а альфа-данные - в линию альфа-сканирования.