Oxipng 图像优化引擎
后知后觉 暂无评论

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 优化(优化引擎更新比较缓慢)。


附录

参考链接

本文撰写于一年前,如出现图片失效或有任何问题,请在下方留言。博主看到后将及时修正,谢谢!
禁用 / 当前已拒绝评论,仅可查看「历史评论」。