当前位置: 首页 > news >正文

使用compressorjs实现前端图片压缩

前言:

最近在公司完成拍照识别功能的时候,由于传递的图片过大会导致后端接口报错,在导师的指导使用compressorjs进行了图片压缩,图片得到了很大程度的缩小,用法总结在这里给有图片压缩需要的小伙伴提供一些借鉴:

具体使用:
介绍:

compressorjs它是有损压缩异步执行,并且在不同浏览器中会有不同的压缩效果

安装:

npm install compressorjs

 使用:
import Compressor from "compressorjs";//压缩函数const imageCompressor = (file, options) => {return new Promise(function (resolve) {if (!file) {return resolve({success: false,msg: "Please select file",i18n: "file.none",});}if (!!file.type && file.type.includes("gif")) {return resolve({success: true,file: file,type: file.type,});}new Compressor(file, {convertTypes: [],convertSize: Infinity,quality: 0.9,checkOrientation: false,maxWidth: 400,maxHeight: 400,...options,success: function (file) {resolve({success: true,file: file,type: file.type,});},error: function () {resolve({success: true,file: file,type: file.type,});},});});};//压缩图片imageCompressor(file).then((res) => {if (res.success) {//在这里进行图片压缩成功后的操作}});
使用到的部分参数介绍:

convertSize

  • 类型: number
  • 默认: 5000000 (5 MB)

如果文件类型包含在 convertTypes 列表中,并且文件大小超过此值,则将转换为 JPEG 格式。要禁用此功能,请将值设为 Infinity

checkOrientation

  • 类型: boolean
  • 默认: true

此选项指示是否读取图片的 Exif 方向值(仅限 JPEG 图片),然后根据该值自动旋转或翻转图片。

注意:

  • 请不要总是完全信赖此设置,因为有些 JPEG 图片具有不正确(非标准)的方向值。
  • 如果目标图片的尺寸过大(例如,超过 10 MB),则应该禁用此选项以避免内存溢出崩溃。
  • 图片的 Exif 信息在压缩后将被移除,所以如果您需要 Exif 信息,您可能需要同时上传原始图片。

    quality

    • 类型: number
    • 默认: 0.8

    输出图片的质量。必须是 0 到 1 之间的一个数字。如果此参数为其他值,则对于 image/jpeg 和 image/webp 分别使用默认值 0.92 和 0.80。其他参数将被忽略。请注意使用 1 时,可能会使输出图片的尺寸变大。

    注意: 此选项仅适用于 image/jpeg 和 image/webp 图片。

    minWidth

    • 类型: number
    • 默认: 0

    输出图片的最小宽度。值应大于 0 且不应大于 maxWidth

    minHeight

    • 类型: number
    • 默认: 0

    输出图片的最小高度。值应大于 0 且不应大于 maxHeight

     更多配置项参考文档:compressorjs文档

    相关文章:

  • 怎么判断一个Android APP使用了KMM这个跨端框架
  • [Java恶补day4] 283. 移动零
  • 水利水电安全员考试的案例分析题一般涉及哪些方面的知识?
  • 4408. 李白打酒加强版(dp)
  • 多路径可靠传输协议(比如 MPTCP)为什么低效
  • ISO 26262-5 评估硬件架构度量值
  • 频率分布直方图
  • 熔断器(Hystrix,Resilience4j)
  • Three.js 中的 Octree(八叉树)详解
  • deepseek组合使用
  • MySQL——复合查询表的内外连
  • python(29) : 使用webview打开网站
  • 电网绝缘子及破损、闪络缺陷YOLO数据集
  • 2025年渗透测试报告需求激增:企业如何科学选择渗透测试服务?
  • 基于大模型预测发育性髋脱位的多维度研究与应用报告
  • SAP在化工行业的数字化转型:无锡哲讯科技的赋能实践
  • 设计模式系列(05):工厂方法模式(Factory Method)
  • 传统工程项目管理与业财一体化管理的区别?
  • 高效获客利器:应用宝CPD广告的投放优化与流量质量保障
  • AI+制造:中小企业的低成本智能化转型
  • 广州做营销型网站建设/做seo需要用到什么软件
  • 石家庄 网站编辑/南宁seo推广
  • 青岛建设银行股份有限公司网站首页/关键词指数查询
  • 餐饮网站制作/网页seo是什么意思
  • 自己可做以做网站吗/网页模版
  • 城乡住房建设部网站造价师网/线上营销平台有哪些