IPhone XR,来自照相机的图像在javascript中具有宽度和高度切换
所以当我在IPhone XR图像(heic格式)上检测图像类型(横向/纵向)时,我似乎发现了一种奇怪的行为。javascript似乎已经改变了图像的宽度和高度。有关于这种行为的任何信息吗?或者你们有什么建议吗?在任何其他图像中检测正常行为的代码IPhone XR,来自照相机的图像在javascript中具有宽度和高度切换,javascript,iphone,heic,iphone-xr,Javascript,Iphone,Heic,Iphone Xr,所以当我在IPhone XR图像(heic格式)上检测图像类型(横向/纵向)时,我似乎发现了一种奇怪的行为。javascript似乎已经改变了图像的宽度和高度。有关于这种行为的任何信息吗?或者你们有什么建议吗?在任何其他图像中检测正常行为的代码 reader.onload = function (e) { const img = new Image() img.src = e.target.result
reader.onload = function (e) {
const img = new Image()
img.src = e.target.result
img.onload = (f) => {
// nuxt,vue
that.$nextTick(() => {
const width = img.width
const height = img.height
console.log(img.width, img.naturalWidth, img.height, img.naturalHeight)
if (height > width) {
that.imgType = 'portrait'
} else {
that.imgType = 'landscape'
}
console.log(that.imgType)
})
}
that.img = img
}
reader.readAsDataURL(this.$refs.fileUpload.files[0])
实际上,宽度和高度没有切换,相反,您的肖像图像是一幅风景图像。此Landscape图像具有纵向的信息保存在图像文件的exif数据中。当您在macOS、iOS或Windows上打开图像时,它会检查exif数据并在显示时旋转图像,因此您永远不会注意到它实际上保存为横向 要读取JavaScript中的exif数据,可以使用或之类的脚本。然后,您可以根据给定的方向号自行旋转/计算旋转:
关于exif方向的更多信息:实际上宽度和高度没有切换,而是您的纵向图像是横向图像。此Landscape图像具有纵向的信息保存在图像文件的exif数据中。当您在macOS、iOS或Windows上打开图像时,它会检查exif数据并在显示时旋转图像,因此您永远不会注意到它实际上保存为横向 要读取JavaScript中的exif数据,可以使用或之类的脚本。然后,您可以根据给定的方向号自行旋转/计算旋转: 有关exif方向的更多信息: