爱意满满的作品展示区。
luin

pngdeer — 效果最好的开源的 PNG 压缩库(超过 TinyPNG 8%~12%)

  •  
  •   luin ·
    luin · Oct 27 · 3162 views

    其实起初只是想试试 AI 的边界能力:我把电脑上所有的 PNG 文件交给 Opus 5.5 ,让它开发一个能超过 TinyPNG 的压缩工具。然后不断打磨(有一些图片总是优化不好,所以要深入分析。另外会有很多人眼测评来纠正 AI 的判断。)

    现在已经完成啦:pngdeer 是一个采用 MIT 协议开源的 Rust PNG 压缩库,支持自动选择画质,提供命令行工具和浏览器本地运行。

    在公开的基准测试中,以相同的 SSIMULACRA2 画质评分比较,文件大小中位数比 TinyPNG 小 8–12%,且超过市面上所有开源项目。

    欢迎 star !

    Supplement 1  ·  Oct 28
    已经支持 webp 输出,接下来会支持更多格式
    33 replies  •  2026-10-30 12:50:29 +08:00
    david1025
    david1025
    Oct 27
    1
    可以加个 mcp 功能,让 ai 直接调用
    luin
    luin
    OP
    Oct 27
    2
    @david1025 好想法!这就加 ;)
    zackkk
    zackkk
    Oct 27
    3
    我做过类似的,最后发现去背景特别难,OP 主可以挑战一下
    luin
    luin
    OP
    Oct 27
    4
    @zackkk https://playyy.ai/tools/background-remover 这个效果怎么样?我们团队之前做的(目前是通过模型,还做不到通过算法)
    zackkk
    zackkk
    Oct 27
    5
    @luin 通过模型是另一回事咯。我以为是本地算法
    malagebidi
    6
    可以和 shortpixel 比较一下
    luin
    luin
    OP
    Oct 27
    7
    @zackkk 对,这个压缩是通过算法。但是去背景感觉只能通过模型效果才好😄
    luin
    luin
    OP
    Oct 27
    8
    @malagebidi 收到!刚才试了一个图,同画质下 pngdeer 要比 shortpixel 更好:

    - https://share.adastralab.ai/DP1w9S5G
    - https://share.adastralab.ai/ls1HmBrM

    我加到测试集中把几百个图片跑一遍看看
    ddter
    ddter
    Oct 27
    9
    39 张三方对比(体积是压缩后占原图的比例,画质是中位数):

    ┌──────────┬───────────────────┬──────────────────────┬─────────────────────┐
    │ 类别 │ yasuo 体积 / 画质 │ pngquant 体积 / 画质 │ pngdeer 体积 / 画质 │
    ├──────────┼───────────────────┼──────────────────────┼─────────────────────┤
    │ 全部 │ 29.6% / 82.3 │ 32.2% / 87.2 │ 28.7% / 87.6 │
    ├──────────┼───────────────────┼──────────────────────┼─────────────────────┤
    │ 照片 │ 33.4% / 76.2 │ 35.7% / 81.5 │ 30.8% / 83.5 │
    ├──────────┼───────────────────┼──────────────────────┼─────────────────────┤
    │ 抠图照片 │ 28.1% / 80.4 │ 30.5% / 87.3 │ 27.2% / 87.5 │
    ├──────────┼───────────────────┼──────────────────────┼─────────────────────┤
    │ 插画 │ 28.6% / 85.6 │ 31.7% / 86.4 │ 29.6% / 88.0 │
    ├──────────┼───────────────────┼──────────────────────┼─────────────────────┤
    │ 3D 渲染 │ 26.4% / 80.1 │ 32.9% / 87.2 │ 28.7% / 87.2 │
    ├──────────┼───────────────────┼──────────────────────┼─────────────────────┤
    │ 图标 │ 91.6% / 95.1 │ 92.9% / 100 │ 57.9% / 91.0 │
    └──────────┴───────────────────┴──────────────────────┴─────────────────────┘

    总的来说:
    - 文件差不多大,pngdeer 画质高约 5 分。39 张里有 32 张它分数更高,19 张是文件更小、分数也更高。
    - yasuo 的问题在画质,体积没问题。155 张全量跑下来,yasuo 有 7 张跌破 70 分,最差一张抠图只有 59.5 分,色带会很明显。原因是 UPNG 的量化算法比较弱,又没有抖动; pngquant 在 155 张里只有 1 张低于 70 。
    - 图标是个例外:pngdeer 主动把颜色压少,文件小了 34%,画质降到 91 分,人眼看不出来。yasuo 在图标上几乎没压。

    拿我手搓的那个 yasuo.app 跟 lz 的这个对比了下,效果不错质量也不错,就是有点慢。
    你的思路是每张图把 2 到 256 色挨个试,再挑最小的那个,比 yasuo 现在的做法慢很多。
    官网开了多线程,16 线程压这 39 张、共 16MB 大约用了一两分钟。yasuo 现在每张只要 0.05 到 0.3 秒。

    lz 可以优化下速度应该会很能打
    luin
    luin
    OP
    Oct 27
    10
    @ddter 感谢评测,很酷!对感觉要优化一下性能😄
    NickyPP
    NickyPP
    Oct 27
    11
    测试了下效果确实不错,肉眼无法分辨差异的情况下比我平时用的 pngquant 体积能小 20%左右,就是速度确实有点慢了。如果能再优化下速度,那就很好了。不过我的图都不算大,所以目前的速度勉强能接受。
    nie11kun
    nie11kun
    Oct 27 via iPhone
    12
    能直接选择文件夹自动压缩里面的所有图片吗
    luin
    luin
    OP
    Oct 27
    13
    @NickyPP 正在优化了。现在是为了效果而牺牲速度(考虑到压缩一次后,图片能被用很久,省下的流量更划算)。我已经优化了 cli 的速度,大概快了 20%,不过浏览器提升有限。正在优化浏览器的速度
    luin
    luin
    OP
    Oct 27
    14
    @nie11kun 好想法!我加到计划中
    luin
    luin
    OP
    Oct 27
    15
    @nie11kun 已经支持啦
    luin
    luin
    OP
    Oct 27
    16
    @NickyPP 速度优化了,大概优化了 20%。再进一步的话就有一些挑战了,不过还有一些空间,还会继续优化
    luin
    luin
    OP
    Oct 28
    17
    现在已经支持 webp 了
    FakerLeung
    18
    先 star
    RedisMasterNode
    19
    建议换个域名不要跟 png 绑定死
    bigxixi
    bigxixi
    Oct 28❤️1
    20
    apng 动图可以压缩吗?
    Jack927
    Jack927
    Oct 28❤️1
    21
    这个工具不错
    Overfill3641
    22
    PNG 风味 JPG ?
    luin
    luin
    OP
    Oct 28
    23
    @RedisMasterNode 哈哈已经后悔了
    luin
    luin
    OP
    Oct 28
    24
    @bigxixi 好问题,我研究一下
    luin
    luin
    OP
    Oct 28
    25
    @bigxixi 已经支持啦
    ihongren
    ihongren
    Oct 28
    26
    感谢,直接封装成了一个方便使用的 macOS 工具栏 App, https://github.com/iHongRen/Mite
    luin
    luin
    OP
    Oct 28
    27
    @ihongren 不错啊!有什么反馈随时告诉我哈
    yuewolf
    yuewolf
    Oct 28
    28
    抽空试用一下看看
    maocat
    maocat
    Oct 28
    29
    看了下,既然你是 rust 引擎,那么我直接封装 python sdk 了,直接上生产!!!
    luin
    luin
    OP
    Oct 28 via iPhone
    30
    @maocat 哈哈厉害了👍
    passive
    passive
    Oct 29 via Android
    31
    和 zopfli 比较,谁压得小?
    luin
    luin
    OP
    Oct 29
    32
    @passive 我试试看哈!
    luin
    luin
    OP
    Oct 30
    33
    @passive zopfli 是无损的,一般只能省 5–15%; pngdeer 是有损的,在看起来一样的前提下通常能省 70% 左右。不过我准备试试让 pngdeer 叠加 zopfli...
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5013 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 57ms · UTC 07:10 · PVG 15:10 · LAX 23:10 · JFK 02:10
    ♥ Do have faith in what you're doing.