使用使用Zopfli优化PNG图片

使用Zopfli优化PNG图片
本文介绍如何使用Zopfli工具压缩PNG图片,通过无损转换达到减小文件体积的目的,从而提高网站加载速度及用户体验。适用于大量使用PNG格式图片的Web服务。
本文讲的是使用使用Zopfli优化PNG图片,

PNG格式 在图片存储中是个很有用的格式,因为他能够保护截图的颜色不失真,能够很好地还原所有图片信息。然而,有许多图像应用并不提供导出较小 PNG 格式图片的功能。幸好,我们可以用一个 Google 发布的扩展工具 Zopfli 来解决这个问题。

Zopfli 是实现 DEFLATE 的编码器,这是一个 PNG 格式中常用的压缩方法(当然也有很多其他的方法来压缩 png,像 ZIP 等等),用来输出可能的最小压缩文件。由于他是一种无损转换,用 Zopfli 做再次压缩的 PNG 文件仍有预期中的像素。

zopflipng

对于一个有很多 png 图片的 web 服务,将所有图片都用 Zopfli 来做压缩是非常有利的。使用(不失真的)压缩图片可以让(文件)传输更快,这就意味着网站访客能得到更好的用户体验。如果网站非常受欢迎,那就可能会显著的节省总带宽了。

在 Linux 或者 macOS(之前叫 OS X )系统编译 Zopfli 非常简单:

    $ git clone https://github.com/google/zopfli.git
    $ cd zopfli
    $ make zopflipng

之后,我通常会将 zopflipng 复制到 ~/bin 中

    $ cp ./zopflipng ~/bin
    $ ./zopflipng
    ZopfliPNG, a Portable Network Graphics (PNG) image optimizer.

    Usage: zopflipng [options]... infile.png outfile.png
           zopflipng [options]... --prefix=[fileprefix] [files.png]...

压缩单张图片:

$ zopflipng screenshot.png screenshot_small.png

注意,由于 Zopfli 压缩是CPU密集型操作,过程中往往需要几秒钟。

对于批量转换,需要一个简单的脚本来做辅助。我写了一个简单的脚本 png-press.sh

    #!/usr/bin/env sh

    tmpfile=$(mktemp)
    zopflipng -m -y $1 $tmpfile
    mv $tmpfile $1

现在可以进入一个全是图片的目录并执行:

    $ find . -iname *.png  | xargs -I % ./png-press.sh %

作为一个插画网站,这个博客有超过280张png图片(大多都是截图),总共占了 24.4MB 的空间。执行上述步骤之后,空间占用量减少到了 19.1MB。节省了整整 5MB 空间!

现在,你有什么理由不使用 Zopfliy 优化去优化你的截图呢?





原文发布时间为:2016年07月20日

本文来自云栖社区合作伙伴掘金,了解相关信息可以关注掘金网站。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值