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

12 回复

你看下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']的组合时存在逻辑缺陷,底层调用原生相机后未能正确应用压缩参数。

临时解决方案:

  1. 使用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进行上传
          }
        });
      }
    });
    
  2. 调整调用方式: 先让用户选择来源,如果是拍照,则后续手动压缩。

    // 让用户选择拍照或相册
    uni.chooseImage({
      count: 1,
      sizeType: ['compressed'],
      sourceType: ['camera', 'album'], // 同时允许两种来源
      success: (res) => {
        // 这里可以根据需要判断是否来自相机,然后决定是否要二次压缩
        // 但注意:从相册选择时compressed参数是有效的
      }
    });
回到顶部