uni-app uni.chooseImage在h5场景下不能进行图片压缩

uni-app uni.chooseImage在h5场景下不能进行图片压缩

开发环境 版本号 项目创建方式
Windows win10 HBuilderX

产品分类:uniapp/H5

PC开发环境操作系统:Windows

浏览器平台:手机系统浏览器

浏览器版本:跟随手机系统

HBuilderX类型:正式

HBuilderX版本号:4.36

示例代码:

uni.chooseImage({  
    count: 1,  
    sizeType: ['compressed'],  
    sourceType: ['camera','album'],  
    success: (res) => {  
        // #ifdef H5  
        console.log("

操作步骤:

运行代码后在真机进行测试,然后手机访问ip打开h5测试。

预期结果:

图片正常压缩

实际结果:

图片未进行压缩。

bug描述:

目的是想实现选择图片后压缩。但是测试发现不论是ios或者安卓,在h5场景下,均没有进行压缩。 ios使用测试机型为iphone13 相册选择同一图片 87242 113603 相机拍摄同一角度照片 183739 2660180

安卓测试机型:小米10 相册选择同一图片 64374 163846 相机拍摄同一角度照片 101350 3244271


更多关于uni-app uni.chooseImage在h5场景下不能进行图片压缩的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

需要看文档支不支持,而不是上来就发个是bug

更多关于uni-app uni.chooseImage在h5场景下不能进行图片压缩的实战教程也可以访问 https://www.itying.com/category-93-b0.html


关于uni.chooseImage在H5下压缩失效的问题,这是已知的H5平台限制。在H5环境下,sizeType参数实际不生效,浏览器原生的文件选择器不支持直接压缩。

建议解决方案:

  1. 使用uni.compressImage API进行二次压缩
  2. 自行实现图片压缩逻辑(推荐使用canvas压缩)

示例代码:

uni.chooseImage({
  success: async (res) => {
    const tempFile = res.tempFiles[0]
    if(tempFile.size > 1024*1024){ //大于1MB才压缩
      const compressed = await uni.compressImage({
        src: tempFile.path,
        quality: 70
      })
      //使用压缩后图片
    }
  }
})
回到顶部