如何使用Delphi将PNG图像复制到剪贴板

时间:2010-02-16 08:28:02

标签: delphi png transparency

使用Delphi 2010我想将PNG图像复制到剪贴板,同时保留Alpha透明度。不幸的是,TPngImage.SaveToClipboardFormat方法会将其绘制到位图,透明度将会丢失。

我希望将PNG图像粘贴到Photoshop和Word等具有Alpha透明度的应用程序中。

关于如何做到这一点的任何想法?其他应用程序如何在剪贴板中复制透明度?

3 个答案:

答案 0 :(得分:5)

我首先将带有透明度信息的图像复制到Photoshop中的剪贴板,然后检查剪贴板上的实际内容。当你知道这一点时,你可能会弄清楚如何自己编写这些数据。

答案 1 :(得分:3)

可能是他们使用另一种剪贴板格式,请参阅 http://msdn.microsoft.com/en-us/library/ms649013(VS.85).aspx获取可用剪贴板格式列表。 或者他们可以注册自己的剪贴板格式,例如

RegisterClipboardFormat('PNG') 

然后简单地将png数据写入剪贴板。如果指定的剪贴板格式字符串是标准的(即其他应用程序注册相同的剪贴板格式),那么您将能够将其粘贴到支持此剪贴板格式的其他应用程序中。

您可能需要直接调用Windows函数,因为Delphi的剪贴板包装器不是很好。

答案 2 :(得分:3)

使用delphi XE,我所做的只是:

Clipboard.Assign(Image1.Picture.Graphic);