如何从浏览器剪贴板api获取动画gif图像?

时间:2013-02-18 10:39:54

标签: javascript google-chrome clipboard copy-paste clipboarddata

我正在测试以下代码,当我复制动画gif并将其粘贴到网页时,我会在控制台中看到image/png - 而不是image/gif

为什么呢?

document.onpaste = function(event) {
  console.log(event.clipboardData.items[1]['type']); // 'image/png'
};

如何匹配gif图像?

例如,您可以使用jsfiddle gif图像在此this进行测试。

2 个答案:

答案 0 :(得分:2)

很少使用CF_GIF剪贴板格式。大多数应用程序仅将图像作为CF_BITMAP,CF_ENHMETAFILE或CF_DIB复制到剪贴板。然后粘贴时,数据将转换为目标应用程序所需的任何格式,例如PNG或Bitmap。 因此,在您的情况下,GIF可能会作为位图复制到剪贴板,然后在粘贴时转换为PNG。您的GIF的所有动画帧都丢失了。 为了保存,您需要使用CF_HDROP,CF_FileName等拖放或模拟文件粘贴。

答案 1 :(得分:0)

通过(我假设)右键单击图像然后“复制图像”复制gif图像,然后复制当前帧而不是整个文件。如果你想捕获整个文件,那么我建议在拖放事件中捕获它。