Как конвертировать DIB в TPNGObject? - PullRequest
2 голосов
/ 27 ноября 2011

У меня есть ручка DIB.Как я могу преобразовать его в TPNGObject с сохранением прозрачности?

РЕДАКТИРОВАТЬ: Я использую метод 2 в этом решении Здесь

ноПолученное растровое изображение не является прозрачным, даже если я установил его Transparent Флаг с истинным

1 Ответ

1 голос
/ 27 ноября 2011

Я думаю, что это начнется примерно так:

var
  lpbi: PBitmapInfoHeader;
begin
  // Get DIB header info from DIB handle
  lpbi := PBitmapInfoHeader(GlobalLock(hdIB));
end;

Тогда, если это 32-битное изображение, у него будет альфа-канал, который вы будете использовать для своих данных прозрачности.

Затем вы копируете данные RGB на линию сканирования объекта PNG, а альфа-данные - в линию альфа-сканирования.

...