乐趣区

关于压缩:图片压缩神器过滤重复压缩直接替换源文件的-tinypng-压缩脚本

「过滤反复压缩」

「替换源文件」

「静默压缩,不生成冗余文件」

我的项目特点

  • 【过滤反复压缩】

    • 自动记录已被压缩过的图片,跳过压缩,加快进度。
    • 记录图片压缩后的 md5 值,再次运行压缩脚本时,跳过压缩。
    • 通过 md5 值比拟文件变更,即便「文件迁徙」也能主动过滤。
    • 通过 md5 值比拟文件变更,即便「应用同名文件替换」也能自动识别,并压缩,没有漏网之鱼。
  • 【替换源文件】

    • 压缩胜利,间接替换源文件,不生成冗余文件,不须要复制粘贴,挪动图片。
    • 静默压缩,对我的项目无感知,无任何影响。
  • 【主动切换 api key】

    • tinypng 申请的 api key 每月只有 500 次收费压缩额度。
    • 可设置多个 api key,当某 key 超过应用次数时,主动切换下一个 key 进行压缩。
  • 【压缩报告】

    • 记录每个图片的压缩数据,并生成汇总信息。
  • 【压缩平安边界】

    • 压缩安全线,当压缩比例低于该百分比值时,放弃源文件,防止过分压缩,伤害图片品质。
  • 【源码携带具体备注,自带测试图片】

    • 升高源码浏览门槛,升高测试门槛,减低应用门槛。
    • 举荐浏览源码,突破恐怖,便于定制个性化需要。

参数介绍

参数名 值类型 是否必填 参数作用 默认值 推荐值
apiKeyList Array 必填 tiny png 的 api key 数组,当其中一个不可用或超过应用次数时,主动切换下一个 key 调用
reportFilePath Number 非必填 压缩报告文件门路,记录图片的压缩比例,生产压缩报告 __dirname + ‘/tinypngReport.json’
md5RecordFilePath Number 非必填 压缩后图片 md5 记录文件,如果待压缩图片的 md5 值存在于该文件,则跳过压缩,解决「反复压缩」问题 __dirname + ‘/tinypngMd5Record.json’
minCompressPercentLimit Number 非必填 压缩安全线,当压缩比例低于该百分比时,放弃源文件,防止图片过分压缩,伤害显示品质 0 10

示例运行步骤

  • 第一步:npm install
  • 第二步:gulp

测试资源

  • test-img:图片压缩测试目录
  • test-img-origin:测试图片备份目录,用于复原测试

运行成果

压缩报告

md5 记录

特别感谢

  • 感激 Gaurav Jassal,本我的项目改编自他的 gulp-tinypng
退出移动版