getPhotoOrientation (context, img, imgW, imgH) {
return new Promise((resolve, reject) => {
const ua = navigator.userAgent.toLowerCase()
const isIos = ua.match(/cpu iphone os (.*?) like mac os/)
console.log('isIos:', isIos)
if (!isIos) {
console.log('noIos-yes:')
context.drawImage(img, 0, 0, imgW, imgH)
resolve({ code: 1 })
return
}
const version = isIos[1]?.replace(/_/g, '.')
console.log('version:', version)
if (Number(version >= 14)) {
console.log('版本号大于14:')
context.drawImage(img, 0, 0, imgW, imgH)
resolve({ code: 1 })
return
}
EXIF.getData(img, function () {
console.log('版本号小于14:')
const orient = EXIF.getTag(this, 'Orientation')
console.log('orient', orient)
if (orient === 6 || orient === 3 || orient === 8) {
switch (orient) {
case 6:
context.width = imgH
context.height = imgW
context.rotate(Math.PI / 2)
context.drawImage(this, 0, -imgH, imgW, imgH)
resolve({ code: 1 })
break
case 3:
context.rotate(Math.PI)
context.drawImage(this, -imgW, -imgH, imgW, imgH)
resolve({ code: 1 })
break
case 8:
context.width = imgH
context.height = imgW
context.rotate(3 * Math.PI / 2)
context.drawImage(this, -imgW, 0, imgW, imgH)
resolve({ code: 1 })
break
}
return
}
context.drawImage(img, 0, 0, imgW, imgH)
resolve({ code: 1 })
})
})
},