uni-app uni.getImageInfo 读取宽高反了
uni-app uni.getImageInfo 读取宽高反了
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Mac | 11.6 | HBuilderX |
示例代码:
小米8 手机拍摄完图片保存到相册后,调用 getImageInfo API读取到的图片宽高是反过来的, 直接拍摄读取的宽高是没问题的
看附件 实际上的图片宽是3024 高度是 4032 但是 读取出来的是宽度4032 高3042
操作步骤:
小米8 手机拍摄完图片保存到相册后,调用 getImageInfo API读取到的图片宽高是反过来的, 直接拍摄读取的宽高是没问题的
看附件 实际上的图片宽是3024 高度是 4032 但是 读取出来的是宽度4032 高3042
预期结果:
小米8 手机拍摄完图片保存到相册后,调用 getImageInfo API读取到的图片宽高是反过来的, 直接拍摄读取的宽高是没问题的
看附件 实际上的图片宽是3024 高度是 4032 但是 读取出来的是宽度4032 高3042
实际结果:
小米8 手机拍摄完图片保存到相册后,调用 getImageInfo API读取到的图片宽高是反过来的, 直接拍摄读取的宽高是没问题的
看附件 实际上的图片宽是3024 高度是 4032 但是 读取出来的是宽度4032 高3042


bug描述:
小米8 手机拍摄完图片保存到相册后,调用 getImageInfo API读取到的图片宽高是反过来的, 直接拍摄读取的宽高是没问题的
看附件 实际上的图片宽是3024 高度是 4032 但是 读取出来的是宽度4032 高3042
更多关于uni-app uni.getImageInfo 读取宽高反了的实战教程也可以访问 https://www.itying.com/category-93-b0.html
也是错误的
回复 壹念: 好的
回复 壹念: 有没有测试过h5拍照后相片是有可能旋转改方向的
回复 DCloud_UNI_LXH: 这个问题还没修复啊兄弟
2023年了这个问题仍旧存在…我服了
哈哈哈哈哈
这个问题是由于图片的 EXIF 方向信息导致的。uni.getImageInfo 在某些情况下会读取图片的原始像素数据,而忽略 EXIF 中的方向标记(Orientation)。当手机竖拍照片时,相机传感器实际记录的原始数据可能是横向的,并依靠 EXIF 中的方向信息来指示正确的显示方向。
解决方案:
- 使用
orientation参数:uni.getImageInfo返回的对象中包含orientation字段,它表示图片的 EXIF 方向信息。你可以根据这个值手动校正宽高。 - 使用
plus.io或exif.js库:如果需要更精确的 EXIF 处理,可以考虑使用原生插件或第三方库来读取图片的完整 EXIF 数据,并根据方向信息计算正确的宽高。 - 图片预处理:在上传或显示前,可以通过 canvas 绘制图片并校正方向,确保获取的宽高与实际显示一致。
示例代码(根据 orientation 校正宽高):
uni.getImageInfo({
src: 'your_image_path',
success: (res) => {
let width = res.width;
let height = res.height;
// 如果方向为 6 或 8,表示图片需要旋转,宽高应交换
if (res.orientation === 6 || res.orientation === 8) {
[width, height] = [height, width];
}
console.log('校正后宽高:', width, height);
}
});


