TinyPNGNodeJSBatcher-基于TinyPNG的批量压缩图片工具

2017-01-13 15:17:39来源:http://www.jianshu.com/p/94a864cbed4b作者:AlexueQ人点击

第七城市
TinyPNGNodeJSBatcher

by AlexQ (email alexq_andr@163.com)


工程源码托管在 GitHub follow&star
TinyPNG
Smart PNG and JPEG compression
Optimize your images with a perfect balance in quality and file size.

如果你想进一步了解TinyPNG压缩图片请移步官网TinyPNG查看。



tinypngPanda
什么是TinyPNGNodeJSBatcher?

提供一个NodeJS环境下,基于TinyPNG服务的,批量压缩任意数量图片的工具。


使用

熟悉tinypng的朋友可以直接进入使用阶段,不熟悉的可以先阅读下面的内容再回头来看这个部分。


安装NodeJS环境:随便百度一下你使用的平台如何安装吧,大把大把的资料;
安装tinify支持:npm install --save tinify;
修改index工程适配你的环境:
申请API KEY(如何申请下面的部分找一下),填写到global.key中 ;
使用compressAllFiles入口,将参数设置成自己的吧;

启动工程中的index.js入口:
cd到工程目录
node index.js

demo运行结果(工程中很多图片都已经被压缩过了,所以压缩率demo中不高,你可以用你的工程看一下,效果明显):



demo
实际场景中的批量压缩

TinyPNG提供了不错的图片压缩,但是免费版本每个月只能免费压缩500张图片,而且我看到产品同学、设计同学往往都是手动的将每一张图片拖动到TinyPNG中,手动的话每次20张图片,这样很不方便,白白耗费人力耗费时间。



tinypngcomplex
申请TinyPNG的KEY

https://tinypng.com/developers/subscription



getapikey
解决痛点

我们实际应用中,可能是需要对一个成型的产品里面所有图片文件统一执行压缩,而且图片可能会分散在不同的目录下,那么TinyPNGNodeJSBatcher就是解决这些痛点的。


简单易用
一个调用就将你指定目录下(允许带有子文件夹的任意目录)图片文件多线程利用tinypng在线压缩;
如果你指定了多个tinypng可用的key,那么在第一个key每月500张使用完后,TinyPNGNodeJSBatcher会自动切换使用第二个key,依此类推,做到不限数量的批量压缩,多找几个邮箱注册就可以获得多个可用的APIKey啦;
结合实际,接口中可以指定那些你不想它们参与压缩的目录,例如:android工程编译后会生成很多中间目录,这些目录咱们不做压缩,典型的就是build目录;
接口中可以指定那些不想参与压缩的,带有关键字文件名称,也就是说名字包含这些字串的文件将不参与压缩,典型应用android中“.9”类型的图片我们一般不做压缩,例如:['.9.png'];
浏览接口
compressAllFiles:核型功能-压缩所有指定目录文件到另一个指定目录
tools_checkImages:工具方法-查找所有可以压缩的文件
tools_findImageFiles:工具方法-查找并拷贝所有可压缩文件
tools_overWriteFiles:工具方法-反向将压缩后的文件覆盖原来对等目录结构的文件
测试

Mac上测试可用




第七城市

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台