实现图片压缩上传

479 阅读1分钟

实现图片压缩上传

流程:

  1. 用户通过input框选择图片
  2. 使用FileReader进行图片预览
  3. 将图片绘制到canvas画布上
  4. 使用canvas画布的能力进行图片压缩
  5. 将压缩后的Base64(DataURL)格式的数据转换成Blob对象进行上传

FileReader 对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 FileBlob对象指定要读取的文件或数据。

通俗来讲,就是这个对象是用来读取 File对象或 Blob对象的。

canvas画布压缩:

先使用 CanvasRenderingContext2D.drawImage()方法将选中的图片文件在画布上绘制出来,

再使用 Canvas.toDataURL()将画布上的图片信息转换成base64(DataURL)格式的数据。

Canvas.toDataURl()方法接收2个参数:

  • mimeType(可选):String;表示需要转换的图像的mimeType类型。默认值是image/png,还可以是image/jpeg,甚至image/webp(前提浏览器支持)等。

  • quailty(可选):Numberquality表示转换的图片质量。范围是0到1。此参数要想有效,图片的mimeType需要是image/jpeg或者image/webp,其他mimeType值无效。默认压缩质量是0.92。