uni-app H5 chooseImage 图片压缩转base64 压缩100KB 以内
时间: 2024-10-01 13:02:40 浏览: 76
uni:app、H5三级联动省市区
UniApp 的 `chooseImage` API 可以帮助你在 H5 应用中选择图片,但是原生处理图片压缩并转成 base64 格式通常是在客户端完成的。要在 UniApp 中限制图片大小到100KB以内,你可以使用 JavaScript 或者 UniApp 提供的一些内置或第三方库,比如 vant-weapp 的 image-preview 组件。
下面是一个简单的步骤概述:
1. 使用 `uni.chooseImage` 获取用户选择的图片:
```javascript
uni.chooseImage({
count: 1, // 取消选择限制
sourceType: ['album', 'camera'],
success: function(res) {
let tempFiles = res.tempFiles;
if (tempFiles.length > 0) {
processImage(tempFiles[0]);
}
},
});
```
2. 定义 `processImage` 函数,对图片进行压缩:
```javascript
function processImage(file) {
uni.getImageInfo({
src: file.path,
success: function(imgInfo) {
const originalSize = imgInfo.size; // 获取原始图片大小
// 使用 uniapp-sdk-image-resizer 这样的库进行压缩
uni.imageCompress({
src: file.path,
quality: 0.8, // 设置压缩质量,范围0-1
size: 100 * 1024, // 目标大小,单位是字节
destType: 'base64',
success: function(compressedData) {
// 压缩后的 base64 编码
const compressedBase64 = compressedData.result;
// ...这里可以保存或发送压缩后的 base64 数据
},
fail: function(error) {
console.error('压缩失败:', error);
},
});
},
});
}
```
请注意,实际效果可能因浏览器兼容性和图片本身的编码等因素略有差异。如果需要更精确的控制,你可能需要额外检查压缩后的文件大小是否达到目标。
阅读全文