我常常使用图片。公众号文章发文也好,仍是生活中要使用素材。图片是一种比文字更加直观的载体。
可是图片更加占用带宽,不少软件都对图片有大小限制。图片太大也会影响加载速度。
我试过几款图片压缩工具,好比 tinypng 和 tinyjpg 很是好用,体验也很是棒。
可是它存在几个局限的地方:vue
因此但愿本身能作一款简单好用的图片工具,顺便定制一些本身经常使用的功能。python
个人初步设想是这样的:
1, 先经过命令行的形式来使用,很是方便,后面若是有需求再写界面。git
picom 图片名称.jpg
这条命令能够对图片进行智能压缩。格式为原来的格式,生成的新图片名字为
图片名称_picom.jpggithub
2,指定新文件名web
picom name.jpg -o new_name.png
图片的格式也将根据新的文件名称跟着变化服务器
3,只指定格式markdown
picom name.jpg --format png
图片指定为新的格式,可是文件名仍是默认的。app
4,裁剪大小函数
picom name.jpg --size normal
图片将被裁剪成正常大小,能够设置几档经常使用的工具
5,裁剪指定具体大小
picom name.jpg --size 920*520
6, 上传到图床
picom name.jpg --upload
上传到图床之后,返回图床地址。图床的地址用什么形式保存还在思考。
pillow 是 python 处理图片的一个很是厉害的库 , 带有图片压缩的功能。
我前后尝试使用 pillow 的如下 API 对图片进行压缩,获得的结果不是很好。
1,quality 参数
save 方法当中的 quality 参数只适合用在 jpg 格式上,一般 80 左右的质量不会有明显的感受。 用在 png 格式上无效,可是也不报错。
2,optimize 参数
optimize 参数直接压缩没有明显效果。
3,quantize 方法
quantize 是主要用到的压缩优化函数,在 png 格式压缩上,能减小 70% 左右的空间,可是颜色差别明显。
这是压缩后效果对比:
4, convert 方法
经过把 png的RGBA 格式转化成 RGB 格式,能够减小大约 20% 的大小
5,PNG 以 jpg 格式保存
先经过 convert 方法转成 RGB 格式,而后另存为 jpg 格式,图片效果没有明显减弱,可是大小迅速减小。
pillow 目前不太适合作 PNG 图片压缩处理,jpg 能够做为备选。 pillow 的主要应用场景能够用在灰度转化,尺寸控制方面,这些功能等把核心的压缩问题解决之后再加。