|
%!s(int64=3) %!d(string=hai) anos | |
---|---|---|
README.md | %!s(int64=6) %!d(string=hai) anos | |
compress.py | %!s(int64=4) %!d(string=hai) anos | |
tinyimg.py | %!s(int64=3) %!d(string=hai) anos |
我们在写文章或者建网站时,经常需要对图片压缩处理,以便帮助用户节省流量和提升网站加载速度。
图片压缩有很多方法,这里推荐的是TinyPNG。TinyPNG 是一个在线压缩工具,主要优点是在视觉上没有明显变化的情况下达到很高的压缩比(如我手机截屏图片大小一般为110k,压缩后能达到30k左右)。
TinyPNG官网: https://tinypng.com/
TinyPNG支持一次最多上传20张图片,图片最大5M。
如果处理的图片比较少则使用在线压缩即可,非常方便,但如果图片处理量比较大,使用在线压缩一次一次的上传下载则显得有些麻烦了,因此用Python写了一个简单的脚本,用于批量压缩图片。
Python: 保证电脑中存在 Python 环境。
Tinify: 导入Tinify
pip install --upgrade tinify
到此处申请 API key: https://tinypng.com/developers
一个 key 每个月可以免费压缩500张图片,可以申请多个 key。
下载完该脚本后,你需要简单编辑一下该脚本,将申请到到API key 填写进去。
online_key_list = [
"sq5RzZVjHxVKRN0CHSBn659XPb67PyMl",
"rcj2WmWcPZGMDbmwDXJ69XQKGhyr6mCw", # 可以继续添加 防止一个key不够
]
之后你可以将该脚本放入到需要压缩的图片的文件夹下,然后在命令行(终端)中进入到该文件夹
执行如下命令批量压缩指定文件夹下大于1000k的图片:
python tinypng.py -d /wwwroot/swdz -s 1000k
或以下命令压缩指定图片:
python tinypng.py -f /wwwroot/swdz/icon1.png
参数 | 参数类型 | 摘要 | 示例 |
---|---|---|---|
无参 | 压缩根目录下所有图片文件 | tinypng.py |
|
-f |
图像文件 | 压缩指定的单个文件 | tinypng.py -f /User/GcsSloop/demo.jpg |
-d |
文件夹 | 压缩指定文件夹下所有图片文件 | tinypng.py -d /User/GcsSloop/DemoDir |
-s |
图像大小 | 压缩指定大小的图片 | tinypng.py -s 1000K |
-w |
整型数字 | 压缩后图片的宽度,不指定则宽度不变 | tinypng.py -w 300 |
参数优先级:
-f > -d > 无参
如果指定了 -f
则只会压缩指定文件,即使后续跟了 -d
也不会压缩指定的文件夹
-w 无冲突,均可使用
-s 用于压缩指定文件夹下大于指定大小的图片,对-f指定图片无效
python /root/compress.py -d /home/wwwroot/swdz_crm/public/upload -w1000