请帮我写一个 对图片进行压缩base64位的js代码
时间: 2023-04-04 10:01:53 浏览: 68
好的,以下是对图片进行压缩并转换为base64位的js代码:
```javascript
function compressAndConvertToBase64(file) {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = (event) => {
const img = new Image();
img.src = event.target.result;
img.onload = () => {
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
canvas.width = img.width;
canvas.height = img.height;
ctx.drawImage(img, , , img.width, img.height);
canvas.toBlob((blob) => {
const reader = new FileReader();
reader.readAsDataURL(blob);
reader.onloadend = () => {
resolve(reader.result);
};
}, 'image/jpeg', .5);
};
};
reader.onerror = (error) => reject(error);
});
}
```
使用方法:
```javascript
const fileInput = document.getElementById('file-input');
fileInput.addEventListener('change', async (event) => {
const file = event.target.files[];
const base64 = await compressAndConvertToBase64(file);
console.log(base64);
});
```
其中,`fileInput` 是一个 `<input type="file">` 元素,用户可以通过它选择要压缩的图片文件。`compressAndConvertToBase64` 函数接受一个文件对象作为参数,返回一个 Promise 对象,Promise 对象的结果是压缩并转换为base64位的图片数据。在使用时,我们可以通过 `await` 关键字等待 Promise 对象的结果,然后将结果用于后续的操作。