uni-app 还是uni.chooseImage的sizeType问题 拍照无法压缩 老板要疯了 我也一样
uni-app 还是uni.chooseImage的sizeType问题 拍照无法压缩 老板要疯了 我也一样
| 项目 | 信息 |
|---|---|
| 产品分类 | uniapp/App |
| PC开发环境操作系统 | Windows |
| PC开发环境操作系统版本号 | 7 |
| HBuilderX类型 | 正式 |
| HBuilderX版本号 | 3.2.3 |
| 手机系统 | Android |
| 手机系统版本号 | Android 9.0 |
| 手机厂商 | 华为 |
| 手机机型 | nova3 |
| 页面类型 | vue |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
示例代码:
uni.chooseImage({
count: 9,
sizeType: [ 'compressed'],
sourceType: ['camera '],
success: function (res) {
console.log(res)
}
});
操作步骤:
uni.chooseImage({
count: 9,
sizeType: [ 'compressed'],
sourceType: ['camera '],
success: function (res) {
console.log(res)
}
});
预期结果:
希望官方尽快确认此bug并解决,感谢三连!!!
实际结果:
感谢感谢感谢
bug描述:
最近一段时间后端一直反映图片上传太大的问题,刚开始反映的少没在意,后来也就这两天,大规模的出现;老板也注意在这事情,直到今天周六,让本人查下前端有没做压缩,无奈来到公司查bug。 看了下官方的更新日志,心想会不会是官方更新时出现的bug,多次测试下,出现确定是。
使用相册选择图片可以正常压缩,但是拍照时压缩不了。
更多关于uni-app 还是uni.chooseImage的sizeType问题 拍照无法压缩 老板要疯了 我也一样的实战教程也可以访问 https://www.itying.com/category-93-b0.html
你看下h5+有没有相应的api可以解决
更多关于uni-app 还是uni.chooseImage的sizeType问题 拍照无法压缩 老板要疯了 我也一样的实战教程也可以访问 https://www.itying.com/category-93-b0.html
好像没有
回复 1***@qq.com: 老哥 我也出现了 最后咋解决的那
回复 1***@qq.com: 还未解决,等待官方中;如果有更多的解决方法分享下;
回复 1***@qq.com: https://ask.dcloud.net.cn/question/129238 关注下这个;现在官方已经修复在alpha版本上,等最近官方更新到正式版估计就可以了
果然,用iphone的也不行
HBuilderX 3.2.6 alpha 已修复
请问大概什么时候会更新到正式版本?
回复 1***@qq.com: 大概这周吧,也不确定。可以先用下alpha,目前这个版本没有爆出来什么大的bug
记得记得那你
iphone拍照还是不会压缩呀
这个问题确实存在,是uni-app在特定版本中的一个已知问题。sizeType: ['compressed'] 参数在调用相机拍照时未能生效,导致拍摄的照片未经压缩直接返回,而相册选择功能则能正常压缩。
问题原因:
在部分HBuilderX版本中,uni.chooseImage API在处理sourceType: ['camera']与sizeType: ['compressed']的组合时存在逻辑缺陷,底层调用原生相机后未能正确应用压缩参数。
临时解决方案:
-
使用
uni.compressImage进行后处理: 在拍照成功后,立即对返回的图片进行压缩处理。uni.chooseImage({ count: 1, sizeType: ['original'], // 或直接不传sizeType sourceType: ['camera'], success: (res) => { const tempFilePath = res.tempFilePaths[0]; uni.compressImage({ src: tempFilePath, quality: 80, // 压缩质量,根据需要调整 success: (compressRes) => { console.log('压缩后的路径:', compressRes.tempFilePath); // 使用compressRes.tempFilePath进行上传 } }); } }); -
调整调用方式: 先让用户选择来源,如果是拍照,则后续手动压缩。
// 让用户选择拍照或相册 uni.chooseImage({ count: 1, sizeType: ['compressed'], sourceType: ['camera', 'album'], // 同时允许两种来源 success: (res) => { // 这里可以根据需要判断是否来自相机,然后决定是否要二次压缩 // 但注意:从相册选择时compressed参数是有效的 } });

