安卓端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的图片方向问题。根据你提供的信息,我分析如下:

  1. 问题原因:
  • Android系统在处理带有EXIF方向信息的图片时,会按照orientation自动旋转
  • iOS平台则能正确识别并保持原始方向
  1. 临时解决方案:
  • 可以在调用previewImage前,先处理图片的EXIF信息
  • 使用第三方库如exif-js读取图片方向信息,然后手动旋转校正
  1. 代码示例:
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值进行相应旋转处理
}
回到顶部