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 回复
一语惊醒梦中人
根据你的代码和描述,问题主要出在 uni.compressImage 的参数使用上。在微信小程序平台,compressImage 的 width 和 height 参数需要是数值类型(单位为物理像素),而不是字符串。将 "100px" 改为 100 即可生效。此外,rotate 参数在微信小程序中可能不被支持或需要特定基础库版本,建议查阅最新文档确认。
对于 uni.chooseImage 的 crop 配置,在微信小程序中,quality、width 和 height 参数可能仅在用户选择“裁剪”模式时才生效,且依赖微信基础库版本。如果未触发裁剪界面,这些参数可能被忽略。建议单独使用 compressImage 进行压缩和尺寸调整。
修改后的 compressImage 部分示例:
uni.compressImage({
src: tempFilePaths,
quality: 80,
width: 500, // 改为数值
height: 500, // 改为数值
success: (res) => {
console.log(res.tempFilePath);
}
});

