2

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

编辑: 我在这个解决方案中使用方法 2这里

但是即使我将其Transparent标志设置为真,位图结果也不透明

4

1 回答 1

1

我认为它会开始这样的事情:

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

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

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

于 2011-11-27T17:32:00.567 回答