exif-js 方向在 android 上总是返回 0 但在桌面上工作
Posted
技术标签:
【中文标题】exif-js 方向在 android 上总是返回 0 但在桌面上工作【英文标题】:exif-js orientation always returns 0 on android but works on desktop 【发布时间】:2020-03-03 22:14:55 【问题描述】:我正在使用 exif-js 库从上传到我的网络应用程序的图像中提取方向。 我需要 exif 方向来旋转错误旋转的 android 图像。
问题是从 android 设备上传的图像总是返回 0 作为它们的方向。
我尝试将同一安卓设备拍摄的图像传输到桌面,然后从那里上传,在这种情况下一切正常,我得到了方向 6。
localforage.getItem('photo').then(function(value)
alert('inside forage');
image = value;
alert(image); // i get the image object
url = window.URL.createObjectURL(image);
alert(url); // url is correct
let preview = document.getElementById('camera-feed');
preview.src = url;
// const tags = ExifReader.load(image);
console.log( tags );
EXIF.getData(image, function()
myData = this;
if (myData.exifdata.Orientation)
orientation = parseInt(EXIF.getTag(this, "Orientation"));
alert(orientation); // on desktop 6, on android always 0
);
....
我在安卓上使用 chrome 浏览器。
【问题讨论】:
【参考方案1】:在我的项目进行了很多更改后,我使用了 this 前端处理图片旋转的库
【讨论】:
【参考方案2】:我知道您已经解决了这个问题,但如果您需要的不仅仅是定位,我仍然愿意推荐 exifr 库。或者,如果性能对您很重要。 Exifr 速度很快,可以处理数百张照片而不会导致浏览器崩溃或花费很长时间:)。此外,还有简洁的 API,您可以为它提供几乎任何东西 - 元素、URL、缓冲区、ArrayBuffer,甚至是 base64 url 或字符串等等。
exifr.orientation(file).then(val =>
console.log('orientation:', val)
)
【讨论】:
以上是关于exif-js 方向在 android 上总是返回 0 但在桌面上工作的主要内容,如果未能解决你的问题,请参考以下文章
暗模式:useColorScheme() 在 Android 上总是返回光
为啥 getSpeed() 在 android 上总是返回 0
在图像上设置 Exif 数据总是在 Android 7 上返回错误
Android:在方向更改时,总是调用 Web 服务 [重复]
FirebaseDynamicLinks.instance.getInitialLink() 在 Android 上总是返回 null