安卓端uni-app的uni.previewImage预览图片,预览图旋转bug。
安卓端uni-app的uni.previewImage预览图片,预览图旋转bug。
信息类别 | 详细信息 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Windows |
PC版本号 | win11 |
HBuilderX | 正式 |
HBuilderX版本 | 4.44 |
手机系统 | Android |
手机版本号 | Android 14 |
手机厂商 | 小米 |
手机机型 | 红米12tub |
页面类型 | vue |
vue版本 | vue2 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
操作步骤:
- 使用preview预览图片即可
预期结果:
- 图片和展示的一样,朝向正确
实际结果:
- 会根据图片的orientation进行旋转或者翻转,但是ios平台没有这个问题。
bug描述:
安卓平台使用uni.previewImage进行预览图片时,预览图的图片会水平翻转。
图片链接为:
更多关于安卓端uni-app的uni.previewImage预览图片,预览图旋转bug。的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于安卓端uni-app的uni.previewImage预览图片,预览图旋转bug。的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个已知的Android平台下uni.previewImage的图片方向问题。根据你提供的信息,我分析如下:
- 问题原因:
- Android系统在处理带有EXIF方向信息的图片时,会按照orientation自动旋转
- iOS平台则能正确识别并保持原始方向
- 临时解决方案:
- 可以在调用previewImage前,先处理图片的EXIF信息
- 使用第三方库如
exif-js
读取图片方向信息,然后手动旋转校正
- 代码示例:
import EXIF from 'exif-js'
function getImageOrientation(file) {
return new Promise((resolve) => {
EXIF.getData(file, function() {
const orientation = EXIF.getTag(this, 'Orientation') || 1
resolve(orientation)
})
})
}
// 使用前先处理图片方向
const orientation = await getImageOrientation(imageFile)
if (orientation > 1) {
// 根据orientation值进行相应旋转处理
}