tinypng图片处理,图片批量压缩,批量裁剪

qiang b9e8000894 更新 'tinyimg.py' 3 gadi atpakaļ
README.md c4bf350d9c 更新 'README.md' 6 gadi atpakaļ
compress.py 5e44177318 更新 'compress.py' 4 gadi atpakaļ
tinyimg.py b9e8000894 更新 'tinyimg.py' 3 gadi atpakaļ

README.md

前言

我们在写文章或者建网站时,经常需要对图片压缩处理,以便帮助用户节省流量和提升网站加载速度。

图片压缩有很多方法,这里推荐的是TinyPNG。TinyPNG 是一个在线压缩工具,主要优点是在视觉上没有明显变化的情况下达到很高的压缩比(如我手机截屏图片大小一般为110k,压缩后能达到30k左右)。

TinyPNG官网: https://tinypng.com/

TinyPNG支持一次最多上传20张图片,图片最大5M。

如果处理的图片比较少则使用在线压缩即可,非常方便,但如果图片处理量比较大,使用在线压缩一次一次的上传下载则显得有些麻烦了,因此用Python写了一个简单的脚本,用于批量压缩图片。

使用方法

一.配置环境

Python: 保证电脑中存在 Python 环境。

Tinify: 导入Tinify

  pip install --upgrade tinify

二.申请 API key

到此处申请 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