图片压缩(不失真)

910 阅读1分钟
使用image-conversion依赖
压缩到指定大小
import { compress, compressAccurately } from "image-conversion";
async submitUpload(file) {
    console.log(file.file.size / 1024);
    const rsp = await compressAccurately(file.file, 200);// 压缩到200k
    console.log(rsp);
    console.log(rsp.size / 1024);
    this.fileList.push({ url: window.URL.createObjectURL(rsp) }); // 将blob对象转成url地址
 }

按照质量压缩(quality 0-1)
const rsp = await compress(file.file, 0.8);
使用compressorjs依赖
import Compressor from "compressorjs";
  async submitUpload(file) {
    console.log(file.file.size / 1024);
    new Compressor(file.file, {
      quality: 0.2, // 对png无效
      convertSize: 200000, // png大于200k 压缩
      success: async (result) => {
        console.log(result.size / 1024);
        // blob类型转为file类型
        let fileParam = new window.File([result], file.name, {
          type: file.type,
        });
      },
    });
}