jpg的图片压缩使用的是canvas原理(这种方法不适用png,亲测png使用这种压缩方法后,不仅没有变小,反而会变大),png图片压缩是基于UPNG.js,采用压缩算法实现的。
前言
在做之前网上搜索了下大部分人的处理方法,都是采用canvas提供的api对图片进行处理。在实际使用的时候发现,jpg确实会被压缩变小,但是png格式的图片不仅没有变小反而会变大。后来进行调研后发现了UPNG.js。开源UPNG.js提供了一个压缩算法UPNG.encode([imageData.buffer], img.width, img.height, 20 * 256 * 0.01),可以对png图片进行压缩。
下载地址
npm地址
使用
下载:
npm iimage-compression-alice
使用后还需要uzip插件,所以需要安装下’
npm install --save uzip
引入:
import { compressImage } from "image-compression-alice";
使用:
let resultBlob = await compressImage(file);