bug:ReferenceError:self未定义exif-js

时间:2018-05-10 04:49:23

标签: javascript node.js exif-js

在查找图像的exif信息时遇到错误(base64图像数据):

Exif.getData(path, () => {
    const tag = Exif.getTag(this, 'Orientation');
    console.log(tag);
});

ReferenceError: self is not defined

/usr/local/lib/node_modules/exif-js/exif.js:931
if ((self.Image && img instanceof self.Image)
^

任何人都可以提供帮助

1 个答案:

答案 0 :(得分:0)

您是在客户端JS或Node.js中执行此代码段吗?

目前exif.js是基于self对象开发的。它仅支持客户端Javascript。

在窗口加载后注册exif.js,附加样本片段以供参考。

window.onload=getExif;

function getExif() {
    var img1 = document.getElementById("img1");
    EXIF.getData(img1, function() {
        var make = EXIF.getTag(this, "Make");
        var model = EXIF.getTag(this, "Model");
        var makeAndModel = document.getElementById("makeAndModel");
        makeAndModel.innerHTML = `${make} ${model}`;
    });

    var img2 = document.getElementById("img2");
    EXIF.getData(img2, function() {
        var allMetaData = EXIF.getAllTags(this);
        var allMetaDataSpan = document.getElementById("allMetaDataSpan");
        allMetaDataSpan.innerHTML = JSON.stringify(allMetaData, null, "\t");
    });
}