Как конвертировать 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, а альфа-данные - в линию альфа-сканирования.

Другие вопросы по тегам