【问题标题】:How would you copy a PNG image to the clipboard using Delphi如何使用 Delphi 将 PNG 图像复制到剪贴板
【发布时间】:2011-01-17 07:20:23
【问题描述】:

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

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

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

【问题讨论】:

  • 约翰,它对你有用吗,因为我现在也有同样的问题,你使用 TPNGObject 吗?我正在使用 D7 字节,我认为这是相同的概念
  • 据我记忆,在剪贴板中处理 PNG 格式的应用程序并不多,但这是一个旧项目,我不记得确切的限制。

标签: delphi png transparency


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    Clipboard.Assign(Image1.Picture.Graphic);
    

    【讨论】:

      【解决方案3】:

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

      RegisterClipboardFormat('PNG') 
      

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

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

      【讨论】:

        猜你喜欢
        • 2023-03-11
        • 1970-01-01
        • 1970-01-01
        • 2011-04-19
        • 1970-01-01
        • 2011-01-01
        • 2021-07-27
        • 1970-01-01
        • 2013-07-14
        相关资源
        最近更新 更多