无法从图像中获取方向

Can't get a orientation from image

我正在研究一种解决方案,以解决以下问题:某些手机制作的图像由于在 exif 数据中有方向而显示为横向或倒置。到目前为止,我得到了方向,但是这个变量没有及时传回以进行下一个旋转步骤。

function getOrientation(image){
    let ort = 1;
    EXIF.getData(image, function () {
        ort = EXIF.getTag(this, 'Orientation');
    });
    return ort;
}

来自 ort 的值稍后与 canvas 结合使用以旋转上传的图像。如下图,但是每次变化都会让值变成1或者undefined。

    let orientation = getOrientation(files);
    let data = rotateImage(files, orientation);

将名为 ort 的变量传递回调用 getOrientation() 的函数的最佳方法是什么?

在尝试了多种方法之后,我能够通过将 orietation 设置为全局变量并使用 setTimeout 让 rotateImage 延迟执行来修复它。通过这样做,getOrientation 可以完成并且 rotateImage 可以在超时结束后使用 let 方向。