uni-app鸿蒙NEXT使用uni.chooseImage时设置压缩sizeType ["compressed"]或者crop的quality 4图片未压缩返回的图片还是3MB以上

uni-app鸿蒙NEXT使用uni.chooseImage时设置压缩sizeType [“compressed”]或者crop的quality 4图片未压缩返回的图片还是3MB以上

开发环境 版本号 项目创建方式
Windows window11 CLI
产品分类:uniapp/App

PC开发环境操作系统:Windows

手机系统:HarmonyOS NEXT

手机系统版本号:HarmonyOS 5.0.5

手机厂商:华为

手机机型:nova 12 Ultra

页面类型:vue

vue版本:vue3

打包方式:离线

项目创建方式:CLI

CLI版本号:3.0.0-4070620250821001

### 操作步骤:
uni.chooseImage({  
    count: 1,   
    sizeType: ['compressed'],  
    success: (tempFilePaths) => {  
      tempFilePaths.tempFiles.forEach(file => {  
            console.log('file size === ', file.size);  
      })  
    },  
    fail: () => {  

    }  
})

预期结果:

希望鸿蒙next跟安卓iOS一样返回压缩后的小尺寸图

实际结果:

鸿蒙返回的图片未压缩

bug描述:

如题,【报Bug】鸿蒙NEXT,使用uni.chooseImage时,设置压缩sizeType: [“compressed”]或者crop的quality: 4,图片未压缩,返回的图片还是3MB以上; iOS跟android返回的是正常的,安卓的size返回的是50736B,大概0.048Mb, 鸿蒙next返回的是4156826B,大概是3.964MB


更多关于uni-app鸿蒙NEXT使用uni.chooseImage时设置压缩sizeType ["compressed"]或者crop的quality 4图片未压缩返回的图片还是3MB以上的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

感谢反馈,等我看一下这个问题的

更多关于uni-app鸿蒙NEXT使用uni.chooseImage时设置压缩sizeType ["compressed"]或者crop的quality 4图片未压缩返回的图片还是3MB以上的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个鸿蒙NEXT平台在图片压缩处理方面的兼容性问题。从你的测试数据来看,同样的压缩设置在Android平台返回约50KB的图片,而在鸿蒙NEXT上却返回近4MB的原图,说明鸿蒙系统目前未能正确处理uni.chooseImage的压缩参数。

这个问题可能源于鸿蒙NEXT底层对uni-app图片选择API的实现尚未完善。在鸿蒙系统升级到NEXT版本后,部分API的兼容性仍在适配过程中。

建议的临时解决方案:

  1. 手动压缩处理:获取图片后使用uni.compressImage进行二次压缩
uni.compressImage({
  src: tempFilePaths[0],
  quality: 80,
  success: (res) => {
    console.log('压缩后大小', res.size);
  }
});
回到顶部