使用compress js 实现上传图片压缩
时间: 2024-05-08 21:16:59 浏览: 71
通过js实现压缩图片上传功能
把上传图片压缩是一种常见的优化方式,可以减小图片的大小,提高网站的加载速度。compress js 是一个用于压缩 JavaScript 代码的库,也可以用来压缩图片。下面是使用 compress js 实现上传图片压缩的示例代码:
```html
<!DOCTYPE html>
<html>
<head>
<title>Upload and compress image using compress js</title>
</head>
<body>
<input type="file" id="file-input">
<img id="original-image">
<img id="compressed-image">
<script src="https://cdnjs.cloudflare.com/ajax/libs/compress.js/1.2.1/compress.min.js"></script>
<script>
const fileInput = document.getElementById('file-input');
const originalImage = document.getElementById('original-image');
const compressedImage = document.getElementById('compressed-image');
fileInput.addEventListener('change', (event) => {
const file = event.target.files[0];
const reader = new FileReader();
reader.addEventListener('load', () => {
originalImage.src = reader.result;
const options = {
maxWidth: 500,
maxHeight: 500,
quality: 0.8,
mimeType: 'image/jpeg'
};
const compressedFile = Compress.compress(file, options);
const compressedUrl = URL.createObjectURL(compressedFile);
compressedImage.src = compressedUrl;
});
reader.readAsDataURL(file);
});
</script>
</body>
</html>
```
这个示例代码包含一个文件上传 input 元素和两个 img 元素,分别用于展示原始图片和压缩后的图片。当用户选择文件后,会触发 change 事件,代码会读取文件内容并将其展示在原始图片中。然后使用 compress.js 的 compress 方法对文件进行压缩,压缩的参数包括最大宽度、最大高度、压缩质量和 MIME 类型。压缩后的文件通过 URL.createObjectURL 方法生成 URL,然后将其展示在压缩图片中。
阅读全文