实现图片压缩上传
流程:
- 用户通过input框选择图片
- 使用FileReader进行图片预览
- 将图片绘制到canvas画布上
- 使用canvas画布的能力进行图片压缩
- 将压缩后的Base64(DataURL)格式的数据转换成Blob对象进行上传
FileReader 对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 File或 Blob对象指定要读取的文件或数据。
通俗来讲,就是这个对象是用来读取 File对象或 Blob对象的。
canvas画布压缩:
先使用 CanvasRenderingContext2D.drawImage()方法将选中的图片文件在画布上绘制出来,
再使用 Canvas.toDataURL()将画布上的图片信息转换成base64(DataURL)格式的数据。
Canvas.toDataURl()方法接收2个参数:
-
mimeType(可选):String;表示需要转换的图像的mimeType类型。默认值是image/png,还可以是image/jpeg,甚至image/webp(前提浏览器支持)等。 -
quailty(可选):Number;quality表示转换的图片质量。范围是0到1。此参数要想有效,图片的mimeType需要是image/jpeg或者image/webp,其他mimeType值无效。默认压缩质量是0.92。