AGPicCompress
github开源项目地址:https://github.com/aoguai/AGPicCompress
AGPicCompress 是一个用于图片压缩的 Python 项目,支持 JPEG 和 PNG 格式的图片压缩。
介绍
二者都可以在保证视觉质量的前提下减小文件大小,以保证压缩后的图片在肉眼上无差异,甚至无损压缩。
效率与特点
AGPicCompress 可以完全离线运行。所有图像压缩都在本地处理。
AGPicCompress 通过合理的算法选择和参数配置,能够在减小图片文件大小的同时尽可能地保持图片质量,满足用户对图片压缩的需求。
JEPG 效果展示(压缩前)大小:9.61MB |
JEPG 效果展示(压缩后)大小:1.79MB |
PNG 效果展示(压缩前)大小:45.1MB |
PNG 效果展示(压缩后)大小:10.3MB |
上面分别是 JPEG 和 PNG 图片在默认参数下的压缩前后对比,你可以打开或者下载图片查看效果于大小差异。
先决条件
AGPicCompress 需要依赖于 mozjpeg 和 pngquant
其中你可能需要手动安装 pngquant,你可以参考 pngquant 官方文档并将其添加到对应位置
AGPicCompress 会在以下位置检测 pngquant 是否存在,你可以自由配置
- 环境变量(推荐)
- AGPicCompress 目录下
- AGPicCompress 目录下的
ext
目录
以便 AGPicCompress 能够找到 pngquant 并使用它进行 PNG 图片的压缩
展示
CIL 界面
Web Demo 界面
下载
对于没有代码需求的普通用户我也打包了仅支持CIL的命令行工具。
你可以前往 github下载
【更新v1.0.2】同时提供蓝奏云下载:
下载:https://aoguai.lanzn.com/iytrT1p4w5ad 密码:4f5t
v1.0.2更新日志:
- 更完善的路径判断
- 使用 UUID 而不是时间戳生成文件名
- 修复已知 BUG
你可以通过 AGPicCompress --help 来获取相关 CIL 参数信息与帮助
Usage: AGPicCompress [OPTIONS] FP
通过命令行压缩图像。
:param fp: 图像文件路径或目录路径。 :type fp: Path
:param force: 如果存在同名文件是否覆盖,默认为False。 :type force: bool
:param quality: 压缩质量。格式如 80-90 或 90,默认为80。 :type quality: int or tuple[int, int]
:param output: 输出路径或输出目录。 :type output: str
:param webp: 转换图像为WebP格式。 :type webp: bool
Options:
-f, --force, --violent 如果存在同名文件是否覆盖,默认为False。
-q, --quality QUALITYINTEGER 压缩质量。80-90或90,默认为80。
-o, --output TEXT 输出路径或输出目录。
--webp 转换图像为WebP格式。
--help 显示帮助信息。
相关
感谢以下开源项目对 AGPicCompress 的支持:
贡献
AGPicCompress 是一个开源项目,非常欢迎社区的参与。要为该项目做出贡献,请遵循贡献指南。
License 说明
AGPicCompress 使用 GPL-3.0 license 进行开源,详情请参阅 LICENSE 文件。