Oxipng 是一个使用 Rust 语言编写的多线程 PNG 优化程序,可以快速压缩 PNG 图片,在不影响观感的情况下大幅度减少图片空间占用。
项目地址:点击跳转
构建
Rust 编译的依赖比较多,推荐使用容器进行编译,高效无污染。
docker container run --rm -it -v $(pwd):/data rust:1.72-alpine3.18 /bin/sh
补充镜像内缺失的编译所需头文件
apk add --no-cache musl-dev git
然后按官方文档进行编译
cd ~
git clone https://github.com/shssoichiro/oxipng.git
cd oxipng/
cargo build --release
将编译后的产物拿到宿主机后退出容器,容器内使用过的文件会自动销毁。
cp target/release/oxipng /data/
用法
推荐使用方法:
oxipng -o 4 -i 1 --strip safe *.png
常用参数:-o (optimization)
:优化度,可用值 (1-6),默认值 2。越低处理速度越快,越高压缩效果越好。默认值在大部分现代处理器上都有很好的效率比,日常使用可以4,不建议4以上。-i (interlacing)
:隔行扫描,可用值 (0, 1, keep),默认值 0。配置为 1 时,会启用 Adam7 PNG 隔行扫描优化,配置为 0 时,将消除所有处理图像的隔行扫描。不指定其中任何一项都将保持与输入图像相同的隔行扫描状态。注意:隔行扫描会使优化图像的大小增加 25-50%。只有当你认为在你的使用情况下,它的好处大于成本时,再去使用它。-s (strip)
:剥离,用于删除图像的元数据信息。可用值 (safe, all),默认值 safe。元数据大约占用几千字节,如果无需元数据可添加此参数。safe 参数仅会删除不会影响图片渲染的元数据,all 参数会删除所有不重要的元数据,也可以通过逗号分隔的列表来指定要删除的元数据块。
更多参数可以参考程序自带的帮助信息-h
。
使用
绝大部分图像优化后可减小 20-30%,本站大部分 PNG 都经过此优化。如果不想自行编译,可以使用 Squoosh 在线进行 Oxipng 优化(优化引擎更新比较缓慢)。
附录
参考链接
本文由 柒 创作,采用 知识共享署名4.0
国际许可协议进行许可。
转载本站文章前请注明出处,文章作者保留所有权限。
最后编辑时间: 2023-09-17 00:06 AM