1、引用compressorjs
import Compressor from 'compressorjs';
new Compressor(file,{
quality:.8,
success(result){
console.log(resule)
},
error(e){
console.log(e)
}
})
const compressImage = file => {
const name = file.name;
const reader = new FileReader();
const type = file.type;
reader.onload = e => {
const src = e.target.result;
const img = new Image();
img.src = src;
img.onload = e => {
const w= img.width;
const h = img.height;
const quality = 0.8;
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
const anw = document.createAttribute('width');
anw.nodeValue = w;
const anh = document.createAttribute('height');
anh.nodeValue = h;
canvas.setAttributeNode(anw);
canvas.setAttributeNode(anh);
ctx.fillStyle = '#fff';
ctx.fillRect(img, 0, 0, w, h);
const base64 = canvas.toDataURL(type, quality);
const bytes = window.atob(base64.split(',')[1]);
const ab = new ArrayBuffer(bytes.length);
const ia = new Uint8Array(ab);
for(let i = 0; i < bytes.length; i++){
ia[i] = bytes.charCodeAt(i);
}
const file2 = new FIle([ab], name, { type: type });
return success(file2)
}
img.onerror = e => {
error(e);
}
}
reader.onerroe = e =>{
error(e)
}
reader.readAsDataURL(file);
}