如何将DIB转换为TPNGObject?

时间:2011-11-27 11:52:49

标签: delphi delphi-7 dib tpngimagelist

我有一个DIB句柄。如何在保留透明度的情况下将其转换为TPNGObject

编辑: 我在此解决方案中使用方法2 Here

但即使我将Transparent标志设置为true

,结果也不会透明

1 个答案:

答案 0 :(得分:1)

我认为这将是这样的:

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

然后,如果它是32位图像,它将有一个alpha通道,您将用于透明度数据。

然后,将RGB数据复制到PNG对象的扫描线,将alpha数据复制到alpha扫描线。