为什么 Chrome 在粘贴图片时会将图片数据转换为“image/png”MIME 类型?

Why does Chrome convert the image data to "image/png" mime-type when an image is pasted?

提问人:Ziyu Zhou 提问时间:12/29/2015 最后编辑:Aastha BistZiyu Zhou 更新时间:8/24/2022 访问量:2457

问:

将 JPG 图像文件复制并粘贴到 Chrome 中后,分析 中的数据,图像类型为 。为什么?Event.originalEvent.clipboardDataimage/png

OS : windows 7

我认为图像在复制到剪贴板时不可能被转换。我尝试将其粘贴到其他应用程序上,图像可以保存为JPG。

我是从网页下载的。

JavaScript

评论

0赞 Koen. 12/29/2015
可能是剪贴板的图像被转换为png吗?你用的是什么操作系统?
0赞 Thilo 12/29/2015
你从哪里复制的?这是什么操作系统?也许剪贴板本身会将图像转换为 PNG。
0赞 srecnig 10/12/2016
同样的事情发生在我身上。我粘贴了一个 txt 文件,它以 MIME 类型“image/png”结束。瓦特?
2赞 Ziyu Zhou 11/10/2016
我阅读了 webkit 的代码;它只是转换!
0赞 Nyerguds 2/6/2019
剪贴板中的图像通常始终是 BMP 格式(实际上是 DIB;与设备无关的位图)。如果幸运的话,当它来自 Gimp 或 MS Office 或其他东西时,它会以 PNG 的形式出现,这意味着您可以在其上保留可靠的 alpha。但是,当您将图像复制到剪贴板时,剪贴板永远不会存储原始文件

答:

0赞 Rishabh Kushwaha 12/12/2018 #1

也就是说,在原生应用程序和网站之间尽可能丰富交互显然是一个目标。但是浏览器需要做一些“过滤”,只公开它知道的MIME类型描述的数据 - MIME类型是我们在网络上描述内容的方式,它是跨平台的,因此比com.apple.iWork.*字符串更有用。此外,应用程序可能会公开结构化数据,例如以某种 XML 格式作为剪贴板上的备用部分之一。

这应该通过剪贴板 api 并显示为我们可以解释的 text/plain 或 image/jpeg+xml。粘贴之所以有效,是因为它创建了具有正确 SVG 扩展名的 Blob 对象,但剪贴板粘贴从不接收数据,而只接收备用图像/PNG 项。

评论

0赞 Nyerguds 2/6/2019
不过,它不使用文本/纯文本或图像/jpeg。剪贴板使用 DIB(剪贴板 ID 字符串“DeviceIndependentBitmap”)或许多用户定义的格式。“PNG”正在进入其中(感谢我最初听说的 MS Office),它最终为我们提供了剪贴板图像的可靠 alpha。