uni-app 5+ gallery.pick 选择图片后图片方向发生改变
uni-app 5+ gallery.pick 选择图片后图片方向发生改变
| 信息类别 | 详细信息 |
|---|---|
| 产品分类 | HTML5+ |
| HBuilderX版本号 | 3.3.5 |
| 手机系统 | Android |
| 手机系统版本号 | Android 9.0 |
| 手机厂商 | 小米 |
| 手机机型 | mi 6x |
| 打包方式 | 云端 |
操作步骤:
5+ gallery.pick 选择图片后图片方向发生改变。 经测试,在选择图片或视频页面如果不勾选下面的 “原图” 选项,选择图片后会自动压缩且图片由以前的坚着变成了横着。反之勾选了 “原图” 就没问题。
预期结果:
选择啥样就是啥样
实际结果:
图片变横着的了
bug描述:
5+ gallery.pick 选择图片后图片方向发生改变。 经测试,在选择图片或视频页面如果不勾选下面的 “原图” 选项,选择图片后会自动压缩且图片由以前的坚着变成了横着。反之勾选了 “原图” 就没问题。
更多关于uni-app 5+ gallery.pick 选择图片后图片方向发生改变的实战教程也可以访问 https://www.itying.com/category-93-b0.html
bug已修复,请将HBuilder X升级到3.3.7及以上版本
更多关于uni-app 5+ gallery.pick 选择图片后图片方向发生改变的实战教程也可以访问 https://www.itying.com/category-93-b0.html
好,升级了
麻烦提供一下可以复现问题的原图
好,有时间再说
bug已确认,将会在下版修复
不好意思这几天一直在忙别的
回复 矩信: 那你在把图片发出来,我验证一下
回复 DCloud_Android_zl: T.T…,找半天
这是Android系统上常见的EXIF方向信息处理问题。当不勾选“原图”时,系统会对图片进行压缩处理,但压缩过程中可能丢失或错误处理了EXIF中的方向信息(Orientation),导致图片显示方向错误。
解决方案:
- 强制使用原图:在调用
gallery.pick时设置system: false,强制使用原图不压缩:
plus.gallery.pick(function(e){
// 回调处理
}, function(e){
console.log("取消选择");
}, {
system: false, // 不使用系统选择器
multiple: false
});
- 手动校正方向:如果必须压缩,可以在获取图片后使用EXIF.js库读取方向信息并进行旋转校正:
// 安装exif-js库后
import EXIF from 'exif-js';
function correctImageOrientation(file) {
EXIF.getData(file, function() {
let orientation = EXIF.getTag(this, 'Orientation');
// 根据orientation值进行相应的旋转处理
// orientation值:1-正常,3-旋转180°,6-旋转90°,8-旋转270°
});
}
- 使用uni.chooseImage替代:考虑迁移到uni-app的标准API,它已经内置了方向处理:
uni.chooseImage({
count: 1,
success: (res) => {
// res.tempFilePaths 中的图片已正确处理方向
}
});

