uni-app uni.chooseImage 选择压缩参数后 图片不进行压缩

uni-app uni.chooseImage 选择压缩参数后 图片不进行压缩

开发环境 版本号 项目创建方式
Windows win7旗舰版 HBuilderX
产品分类:uniapp/App

PC开发环境操作系统:Windows

PC开发环境操作系统版本号:win7旗舰版

HBuilderX类型:正式

HBuilderX版本号:3.2.3

手机系统:Android

手机系统版本号:Android 11

手机厂商:小米

手机机型:redmik30

页面类型:vue

打包方式:云端

项目创建方式:HBuilderX

### 示例代码:
```p
uni.chooseImage({
count: 6, //默认9
sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
sourceType: ['album'], //从相册选择
success: function (res) {
console.log(JSON.stringify(res.tempFilePaths));
}
});

操作步骤:

uni.chooseImage({
count: 6, //默认9
sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
sourceType: ['album'], //从相册选择
success: function (res) {
console.log(JSON.stringify(res.tempFilePaths));
}
});

预期结果:

压缩后图片大小变小

实际结果:

压缩后图片大小没有变化

bug描述:

uni.chooseImage不压缩,之前版本是可以的 ,最近两次升级版本后不能压缩了
按照官网示例和uniapp  Demo编译后都不会压缩  

更多关于uni-app uni.chooseImage 选择压缩参数后 图片不进行压缩的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

解决了吗

更多关于uni-app uni.chooseImage 选择压缩参数后 图片不进行压缩的实战教程也可以访问 https://www.itying.com/category-93-b0.html


根据你提供的信息,这确实是近期版本中出现的已知问题。在HBuilderX 3.2.3版本中,uni.chooseImagesizeType参数设置为['compressed']或同时包含'compressed'时,在Android端可能无法正常触发图片压缩。

问题原因
该问题与底层原生模块的压缩逻辑处理变更有关。在某些Android系统或机型上,当sizeType数组包含多个选项时,压缩流程可能被跳过,直接返回原图。

临时解决方案

  1. 明确指定压缩类型:将sizeType参数设置为只包含'compressed',即sizeType: ['compressed']。这可以避免因参数组合导致的逻辑判断问题。
  2. 手动压缩处理:如果上述方法无效,可在获取图片后,使用uni.compressImage API进行二次压缩。示例代码如下:
    uni.chooseImage({
      count: 6,
      sourceType: ['album'],
      success: async (res) => {
        const compressedPaths = [];
        for (let filePath of res.tempFilePaths) {
          const compressRes = await uni.compressImage({
            src: filePath,
            quality: 80 // 调整压缩质量
          });
          compressedPaths.push(compressRes.tempFilePath);
        }
        console.log(compressedPaths);
      }
    });
回到顶部