js实现浏览器批量压缩图片原理及代码解析
原理很简单,就是通过file获取图片,然后创建一个canvas画布,将图片按照画布的尺寸填充进去就实现了图片的压缩
var file = document.getElementById("file").files[0]; var reader = new FileReader(); //将文件以Data URL形式读入页面 reader.readAsDataURL(file); reader.BfwOnload= function(e) { let img= new Image(); image.src = e.target.result; }
压缩图片
var canvas = document.createElement('canvas'); var cBfwOntext= canvas.getContext('2d'); canvas.width = 400; canvas.height = 300; // 核心JS就这个 context.drawImage(img,0,0,400,300);通过canvas.toDataURL来生成图片
canvas.toDataURL(mimeType, qualityArgument)其中:mimeType表示canvas导出来的base64图片的类型,默认是png格式,也即是默认值是'image/png',我们也可以指定为jpg格式'image/jpeg'或者webp等格式。file对象中的file.type就是文件的mimeType类型,在转换时候正好可以直接拿来用(如果有file对象)。
下面我们来看看完整的html代码,可以直接运行的
点击查看剩余70%
网友评论0