js 压缩html 图片上传,js canvas 前端实现修改图片尺寸压缩图片大小
时间: 2023-06-24 16:05:12 浏览: 144
通过js实现压缩图片上传功能
压缩HTML:
可以使用多种工具来压缩HTML,例如HTMLMinifier或UglifyJS等。这些工具可以删除不必要的空格、注释和其他字符,从而减小文件大小。以下是使用HTMLMinifier进行HTML压缩的示例代码:
```javascript
const html = '<html><head><title>Hello World</title></head><body><p>Hello, world!</p></body></html>';
const minifiedHtml = htmlMinifier.minify(html, {
collapseWhitespace: true,
removeComments: true,
minifyCSS: true,
minifyJS: true
});
```
图片上传:
可以使用HTML5的File API来实现图片上传。以下是一个基本的示例:
```html
<input type="file" id="upload-input">
<script>
const input = document.getElementById('upload-input');
input.addEventListener('change', (e) => {
const file = e.target.files[0];
const reader = new FileReader();
reader.onload = (event) => {
const imageData = event.target.result; // 图片数据
// 将图片数据上传到服务器
};
reader.readAsDataURL(file);
});
</script>
```
JS Canvas 修改图片尺寸和压缩大小:
可以使用canvas的API来修改图片的尺寸和压缩图片大小。以下是一个基本的示例:
```html
<input type="file" id="upload-input">
<canvas id="canvas"></canvas>
<script>
const input = document.getElementById('upload-input');
const canvas = document.getElementById('canvas');
const context = canvas.getContext('2d');
input.addEventListener('change', (e) => {
const file = e.target.files[0];
const reader = new FileReader();
reader.onload = (event) => {
const img = new Image();
img.onload = () => {
// 计算缩小后的尺寸
const maxWidth = 300;
const maxHeight = 300;
let width = img.width;
let height = img.height;
if (width > height) {
if (width > maxWidth) {
height *= maxWidth / width;
width = maxWidth;
}
} else {
if (height > maxHeight) {
width *= maxHeight / height;
height = maxHeight;
}
}
canvas.width = width;
canvas.height = height;
// 绘制缩小后的图片
context.drawImage(img, 0, 0, width, height);
// 压缩图片
const quality = 0.7;
const imageData = canvas.toDataURL('image/jpeg', quality);
// 将图片数据上传到服务器
};
img.src = event.target.result;
};
reader.readAsDataURL(file);
});
</script>
```
以上是一个基本的实现,具体的实现方式可以根据需求进行修改。
阅读全文