uni-app 图片压缩参数不起作用

uni-app 图片压缩参数不起作用

项目信息 详情
产品分类 uniapp/小程序/微信
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 win 10
HBuilderX类型 正式
HBuilderX版本号 3.2.9
第三方开发者工具版本号 微信开发者工具 1.05.21110110
基础库版本号 2.20.0
项目创建方式 HBuilderX

示例代码:

uni.chooseImage({  
    count: 1,  
    sizeType: ['compressed'],  
    crop:{  
        quality:80,  //不起作用  
        width:500,//不起作用  
        height:500,//不起作用  
    },  
    success: (chooseImageRes) => {  
        console.log(chooseImageRes.tempFiles[0].size)  
        const tempFilePaths = chooseImageRes.tempFilePaths[0];  
        uni.compressImage({  
            src: tempFilePaths,  
            quality: 80,  
            width: "100px", //不起作用  
            height: "100px", //不起作用  
            rotate: 190, //不起作用  
            success: (res) => {  
                this.uu = res.tempFilePath  
                console.log(res.tempFilePath)  
                uni.getImageInfo({  
                    src: res.tempFilePath,  
                    success: function(image) {  
                        console.log(image.width);  
                        console.log(image.height);  
                    }  
                });  
        }  
    });  

操作步骤:

  • chooseImage选择图片进行压缩,包括jpg和png格式

预期结果:

  • 图片宽高变成500px

实际结果:

  • 没有任何变化

bug描述:

  • 微信小程序在使用chooseImage和compressImage进行压缩的时候,chooseImage的crop缩放不起作用

更多关于uni-app 图片压缩参数不起作用的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

仅App支持,详见文档平台差异说明

更多关于uni-app 图片压缩参数不起作用的实战教程也可以访问 https://www.itying.com/category-93-b0.html


一语惊醒梦中人

根据你的代码和描述,问题主要出在 uni.compressImage 的参数使用上。在微信小程序平台,compressImagewidthheight 参数需要是数值类型(单位为物理像素),而不是字符串。将 "100px" 改为 100 即可生效。此外,rotate 参数在微信小程序中可能不被支持或需要特定基础库版本,建议查阅最新文档确认。

对于 uni.chooseImagecrop 配置,在微信小程序中,qualitywidthheight 参数可能仅在用户选择“裁剪”模式时才生效,且依赖微信基础库版本。如果未触发裁剪界面,这些参数可能被忽略。建议单独使用 compressImage 进行压缩和尺寸调整。

修改后的 compressImage 部分示例:

uni.compressImage({
    src: tempFilePaths,
    quality: 80,
    width: 500, // 改为数值
    height: 500, // 改为数值
    success: (res) => {
        console.log(res.tempFilePath);
    }
});
回到顶部