【问题标题】:Copy GIF data from clipboard with WinJS使用 WinJS 从剪贴板复制 GIF 数据
【发布时间】:2013-12-13 15:55:08
【问题描述】:

我正在编写一个 WinJS 应用程序,它会是一个很好的功能来处理动画 GIF。经过一些研究,如果似乎为了做到这一点,使用鲜为人知的 CF_GIF 剪贴板格式将数据复制到剪贴板

how to get animated gif image from browser clipboard api?

但查看 WinJS 文档以了解剪贴板格式

http://msdn.microsoft.com/en-US/library/windows/apps/windows.applicationmodel.datatransfer.standarddataformats

CF_GIF 似乎不可用,当我将 GIF 复制到剪贴板并使用命令查看 dataPackageView 时

var dataPackageView = Windows.ApplicationModel.DataTransfer.Clipboard.getContent();

它只是显示为位图。谁能告诉我是否确实可以从剪贴板中获取动画 GIF 或某种解决方法?

【问题讨论】:

    标签: clipboard winjs


    【解决方案1】:

    CF_Bitmap 是这里的路。

    您可以制作一种私有数据格式,并将整个 GIF 放在那里。您可以将其粘贴到应用程序的其他实例中。但它不能与其他任何东西一起使用,除非您也将其作为 CF_Bitmap 提供。

    好的,还有另一种方法。您可以转储到 .gif 文件,然后将 CF_HDROP(文件指针)放到剪贴板上。然后,当您粘贴时,就像从 Windows 资源管理器中粘贴文件一样。这可能适用于某些应用。

    是的,就像我说的,使用 CF_Bitmap。

    【讨论】:

    • 好吧,如果可以的话,我会,但我的意思是,WinJS 似乎甚至不会让您知道或让您访问 CF_GIF 标识符。在此链接msdn.microsoft.com/en-US/library/windows/apps/… 中,他们似乎没有公开一个能够检索它的函数,只有其他类型。我的用例就像有人在 Chrome 中复制 GIF,然后跳转到我的应用并粘贴它。
    • 当他们在 Chrome 中复制 GIF 时,剪贴板上会显示哪些格式?我想你会发现 WinJS 不让你访问 CF_GIF 并不重要,因为它不像 CF_GIF 那样在剪贴板上。从 Chrome 复制 GIF 会产生 CF_Bitmap、CF_DIB(另一个位图)、HTML 和一些私有 UniformResourceLocator 的东西。
    • 嗨,克里斯,感谢您的跟进。我不完全是 Chrome 用于将 GIF 发布到剪贴板的格式,但是查看您发布的另一个答案 stackoverflow.com/a/14945981/1754642,在我看来,“Gmail 是如何做到的?”这个问题似乎仍然没有答案。例如,我刚刚尝试过,找到一个动画 GIF,右键单击并“复制图像”,然后在 Gmail 中撰写一封新电子邮件,然后粘贴并将动画 GIF 粘贴到 Gmail 中。 Chrome 确实使用 CF_GIF 格式,或者他们以某种方式获取了 GIF 的 URL,但我的印象是被丢弃了。
    猜你喜欢
    • 2020-04-10
    • 2018-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 2015-04-02
    相关资源
    最近更新 更多