压缩图片的方法

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);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值