如何使用 Delphi 将 PNG 图像复制到剪贴板
使用 Delphi 2010 我想将 PNG 图像复制到剪贴板,同时保留 alpha 透明度。不幸的是,TPngImage.SaveToClipboardFormat 方法会将其绘制为位图,并且透明度将丢失。
我希望将 PNG 图像粘贴到具有 alpha 透明度的 Photoshop 和 Word 等应用程序中。
关于如何做到这一点有任何想法吗?其他应用程序如何复制剪贴板中的透明度?
Using Delphi 2010 I would like to copy a PNG image to the clipboard while preserving the alpha transparency. Unfortunately, the TPngImage.SaveToClipboardFormat method will draw it to a bitmap and the transparency will be lost.
I would like for the PNG image to be pasted in applications such as Photoshop and Word with alpha transparency.
Any idea on how to do that ? How are other applications doing to copy transparency in the clipboard ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我首先将带有透明度信息的图像复制到 Photoshop 中的剪贴板,然后检查剪贴板上实际内容。当您知道这一点时,您可能可以弄清楚如何自己编写该数据。
I'd first copy an image with transparency information to the clipboard in Photoshop, and then examine what's actually on the clipboard. When you know this, you can probably figure out how to write that data yourself.
使用delphi XE,我所做的就是:
With delphi XE, all i did was:
他们可能使用替代的剪贴板格式,请参阅
http://msdn.microsoft.com/en-us /library/ms649013(VS.85).aspx 查看可用剪贴板格式的列表。
或者他们可以注册自己的剪贴板格式,例如,
然后简单地将 png 数据写入剪贴板。如果指定的剪贴板格式字符串是标准的(即其他应用程序注册相同的剪贴板格式),那么您将能够将其粘贴到支持此剪贴板格式的其他应用程序中。
您可能需要直接调用 Windows 函数,因为 Delphi 的剪贴板包装器不是很好。
It could be that they use an alternative clipboard format, see
http://msdn.microsoft.com/en-us/library/ms649013(VS.85).aspx for a list of available clipboard formats.
Or they could register their own clipboard format such as
and then simply write the png data to the clipboard. If the clipboard format string specified is standard (i.e. other applications register the same clipboard format) then you will be able to paste it into other applications which support this clipboard format.
You might need to call windows functions directly as Delphi's clipboard wrapper isn't very good.