「过滤反复压缩」
「替换源文件」
「静默压缩,不生成冗余文件」
我的项目特点
-
【过滤反复压缩】
- 自动记录已被压缩过的图片,跳过压缩,加快进度。
- 记录图片压缩后的 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