uni-app uni.previewImage 在安卓端打开苹果端发布的图片时,放大预览图片会逆时针旋转90度

uni-app uni.previewImage 在安卓端打开苹果端发布的图片时,放大预览图片会逆时针旋转90度

示例代码:

previewImg(i, imageArr) {  
    uni.previewImage({  
        current: i,  
        urls: imageArr,  
        loop: true  
    });  
},

操作步骤:

在应用商店搜索下载Hi校园app,在苹果端发布图片
在安卓端打开苹果端发布的图片会旋转90度

预期结果:

不旋转90度

实际结果:

旋转

bug描述:

使用uni.previewImage 在安卓端打开苹果端发布的图片,放大预览图片会逆时针旋转90度

图片

image
image

信息类别 信息内容
产品分类 uniapp/App
PC开发环境 Mac
PC操作系统版本 macOS Big sur 11.2
HBuilderX类型 正式
HBuilderX版本 3.2.8
手机系统 Android
手机系统版本 Android 11
手机厂商 华为
手机机型 mate30 5G
页面类型 vue
打包方式 云端
项目创建方式 HBuilderX

更多关于uni-app uni.previewImage 在安卓端打开苹果端发布的图片时,放大预览图片会逆时针旋转90度的实战教程也可以访问 https://www.itying.com/category-93-b0.html

11 回复

没人吗

更多关于uni-app uni.previewImage 在安卓端打开苹果端发布的图片时,放大预览图片会逆时针旋转90度的实战教程也可以访问 https://www.itying.com/category-93-b0.html


没人吗

来个人处理下啊

图片链接提供一下

回复 a***@helloyun.cn: 下个版本会优化该问题

回复 DCloud_Android_ST: 是 bug是吧,确认下问题 谢谢 想加分 哈哈

HX3.2.10 alpha 已修复该问题

3.2.12.20211029 版本 OPPO A32手机, uni.chooseImage 选择图片时在图片列表里方向正常。图片列表里点预览 > 编辑,图片是向右旋转90度的。选择图片后,图片是向右旋转90度的。
EXIF工具查看图片: Rotate 270 CW
uni.getImageInfo 返回的是 UP

另外,上传到服务器上, exif信息都没有了,所以服务器得不到rotate信息
接上:手机选择图片时,选择原图,情况也是一样的

这个问题是由于iOS设备拍摄的照片包含EXIF方向信息,而Android端的图片预览组件未能正确处理这些方向信息导致的。

问题原因: iOS设备拍摄的照片通常包含EXIF元数据,其中记录了照片的方向信息。当iOS用户上传照片时,这些EXIF信息会被保留。但在Android端使用uni.previewImage预览时,系统可能没有正确解析这些方向信息,导致图片显示时发生旋转。

解决方案:

  1. 上传前处理图片(推荐): 在iOS端上传图片前,使用uni.compressImageuni.getImageInfo获取图片信息,然后通过canvas进行方向校正:

    // 获取图片信息
    uni.getImageInfo({
      src: imagePath,
      success: (res) => {
        // 如果图片有旋转信息,进行校正处理
        if (res.orientation && res.orientation !== 'up') {
          // 使用canvas重绘图片校正方向
          this.correctImageOrientation(res.path);
        }
      }
    });
回到顶部