首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
PageSpeed 相关文档
为 NGINX 编译 PageSpeed 支持
ngx_pagespeed
Configuring mod_pagespeed Filters
加载性能测试工具
WebPagetest
Gomez
Coding
V2EX  ›  前端优化

tinypng.org 令人惊叹的 PNG 压缩比率

  •  
  •   NemoAlex · 2013-05-28 16:35:33 +08:00 · 20675 次点击
    这是一个创建于 2391 天前的主题,其中的信息可能已经有所发展或是发生改变。
    http://tinypng.org/
    似乎可以把一切 PNG24 压缩成 PNG8,而不损失画质
    随便试了一下本地的几张图,都达到了接近70%左右的压缩比
    网站做得也很好用,可以批量上传
    可惜少个打包下载的功能

    顺便说一下:IE6 支持 PNG8 的透明,只是把带有 Alpha 通道的像素全部判定为100%透明了
    所以用它压过的 PNG 在 IE6 中也可以实现一部分的透明效果
    如果你需要做一些在 Web 上显示的 icon,用这个压一遍是再好不过了
    24 回复  |  直到 2016-02-22 18:03:26 +08:00
        1
    Jessepinkman   2013-05-28 16:59:54 +08:00
    mark
        2
    LincolnDz   2013-05-28 17:04:14 +08:00
    mark
        3
    ytzong   2013-05-28 17:06:19 +08:00
    不损失画质是如何得来的?
    png8 只有256色,不可能不损失画质
        4
    NemoAlex   2013-05-28 17:48:29 +08:00
    @ytzong 不是无损
    信息量确实有损失,只是感官上的“画质”没有显著降低罢了
    其实很多图片用8位索引色已经够了,超过的部分会根据算法进行近似匹配
    如果算法优秀的话效果会很好
        5
    Livid   V2EX Moderator   2013-05-29 03:15:35 +08:00
    确实很有效果,如果这个网站有个 API 接口就好了,收费的也行。
        6
    leecade   2013-05-29 03:46:46 +08:00
        7
    leecade   2013-05-29 03:53:11 +08:00
    命令行下很多这类工具:
    https://github.com/leecade/imagine
        8
    liuhang0077   2013-05-29 05:12:08 +08:00 via Android
    mark
        9
    libftx   2013-05-29 08:11:55 +08:00 via Android
    mark
        10
    fim8   2013-05-29 08:37:30 +08:00
    非常感谢!
        11
    hiwljun   2013-05-29 09:54:10 +08:00   ♥ 2
    @Livid curl http://tinypng.org/api/shrink --request POST --data-binary <file>
        12
    Livid   V2EX Moderator   2013-05-29 09:55:55 +08:00
    @hiwljun 感谢。
        13
    cdfmr   2013-05-29 10:12:09 +08:00
    试了一下,真的很不错。虽然没有打包下载,使用下载工具也能轻松搞定。我用的是Firefox+DTA。
        14
    clowwindy   2013-05-29 10:15:35 +08:00 via iPhone
    每当出个新的图片压缩网站,号称有多厉害,结果和 photoshop 的 save for web 一对比,发现设成一样的参数,压缩效果是一样的
        15
    heroicYang   2013-05-29 10:31:42 +08:00
    不错~mark之
        16
    Anran   2013-05-29 10:32:59 +08:00
    impressive
        17
    NemoAlex   2013-05-29 10:37:41 +08:00   ♥ 1
    @clowwindy Photoshop 的 PNG 输出差远了
    开源的那些工具,无损压缩都秒杀 Photoshop
    何况这个有损的
        18
    Los   2013-05-29 10:48:14 +08:00   ♥ 2
    http://pngquant.org/
    pngquant is a command-line utility and a library for converting 24/32-bit PNG images to paletted (8-bit) PNGs.
        19
    NemoAlex   2013-05-29 10:57:52 +08:00
    @Los 原来跟 ImageAlpha 用的是同一个东西
    感谢
        20
    NemoAlex   2013-05-29 11:05:17 +08:00
    @Los 可惜 ImageOptim 没有提供这个选项
    ImageAlpha 用起来没有 ImageOptim 方便
        21
    efi   2013-05-29 14:58:25 +08:00
    后台使用开源组合 pngquant + optipng + advdef/advpng

    有一些私有程序号称更好 一个评测:http://css-ig.net/png-tools-overview
        22
    efi   2013-05-29 15:17:25 +08:00
    优化png基本上是这几个方面:

    1. 减少颜色数量。比如24位色深RGBA每个像素压缩前要4字节,通过颜色量化算法提取出256种常见颜色作为调色板,那么1个像素就1字节。这个的颜色量化,必然是有损的,只是说通过图像质量的较少损失换取较多的空间节省。这里有pngquant用中位切分算法,pngnq用神经网络算法。颜色量化另一个复杂之处是对于怎样用较少的颜色dither出较好的渐变效果。
    2. 去除png文件格式中非必要的数据块。optipng做这个事情。
    3. 图像预处理过滤调优,通过类似相邻像素查分的方法,让图像数据更适合压缩。optipng。
    4. Deflate优化。zlib的deflate算法通用压缩器都可以加入使用。advdef/advpng使用了7zip的优化deflate,PNGOUT用了一种私有的Kflate。3月份Google发表的Zopfli原则上也可以整合进来。encoder.ru上还有一些私有的号称更好。
        23
    Kai   V2EX Moderator   2013-05-31 07:03:49 +08:00
    目前发现的不足是,压缩后的图片如果用 PIL 库处理的话,很容易出现 transparency mask 方面的错误。
        24
    saitjr   2016-02-22 18:03:26 +08:00   ♥ 1
    虽然过了很久了,还是安利下写的批量压缩下载的脚本,官网现在也有 api 可用,方式很多
    https://github.com/saitjr/STTinyPNG-Python
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1143 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 25ms · UTC 18:23 · PVG 02:23 · LAX 10:23 · JFK 13:23
    ♥ Do have faith in what you're doing.