笔记:前端压缩图片后上传

75 阅读1分钟

场景:有时间需要在上传前让前端把图片压缩一下后在上传

思路:在上传前压缩文件后生产新的文件即可 ,使用到的轮子 image-conversion

image-conversion@2.1.1

let pictureLabelList = ['png','jpg',...]
let type = "image/jpeg"
const compressPictureFn = async (file) => {
  if (pictureLabelList.includes(file.file.type)) {
    let num = numFn(file.file.size);
    if (!num) return file;
    console.log(byteToMFn(file.file.size), "压缩前");
    const blob = await imageConversion.compressAccurately(file.file, 3000);
    let name = file.file.name;
    var files = new File([blob], name, {
      type,
      lastModified: Date.now(),
    });
    console.log(byteToMFn(files.size), "压缩后");
    return { file: files };
  }
  return file;
};