javascript-从页面上的图像检索二进制数据/ EXIF

我需要访问页面上已加载的图像中的EXIF数据.说,从浏览器扩展. AFAIU,有一些JavaScript方法可以完成任务:

>使用JavaScript-Load-Image;
>使用Nihologic EXIF manipulation library;
>在画布上绘制图像.

前两种方法可能处理本地文件,或者需要对服务器执行附加(在这种情况下为多余)请求以检索二进制数据.后者可能起作用:

var canvas = document.createElement("canvas");
canvas.width = oImg.width;
canvas.height = oImg.height;

// Copy the image contents to the canvas
var ctx = canvas.getContext("2d");
ctx.drawImage(oImg, 0, 0);

// Get the data-URL formatted image
var dataURL = window.atob(canvas.toDataURL("image/jpeg", 1.0).split(',')[1]);

但是生成的二进制对象不包含EXIF数据(0xE1标记),似乎在画布上绘制后,它会产生JFIF(0xE0)标记.

因此,我的问题是:是否可以访问页面上已加载图像的二进制数据?

请注意:SO上已经有similar questions,但是没有人回答如何不重新加载图像并获得对EXIF数据的访问权的问题.

我知道我可以将映像本地保存到本地存储中,然后使用上述库,但这看起来有些过头了.

解决方法:

Is it possible to get an access to binary data of already loaded image on the page?

不,很遗憾,这是不可能的,不是从用于图像的原始二进制文件数据中得出的.图像处理后,原始二进制数据将被丢弃.

图像加载过程是一个完全独立的过程,根本不涉及画布-这里的画布是无辜的!

上一篇:Python解析照片EXIF信息,获取坐标位置


下一篇:颠倒图片的凶手就是!