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

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

  •  
  •   luin ·
    luin · 1 day ago · 1927 views

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

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

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

    欢迎 star !

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

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

    我加到测试集中把几百个图片跑一遍看看
    ddter
        9
    ddter  
       1 day ago
    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
        10
    luin  
    OP
       1 day ago
    @ddter 感谢评测,很酷!对感觉要优化一下性能😄
    NickyPP
        11
    NickyPP  
       1 day ago
    测试了下效果确实不错,肉眼无法分辨差异的情况下比我平时用的 pngquant 体积能小 20%左右,就是速度确实有点慢了。如果能再优化下速度,那就很好了。不过我的图都不算大,所以目前的速度勉强能接受。
    nie11kun
        12
    nie11kun  
       23h 5m ago via iPhone
    能直接选择文件夹自动压缩里面的所有图片吗
    luin
        13
    luin  
    OP
       22h 58m ago
    @NickyPP 正在优化了。现在是为了效果而牺牲速度(考虑到压缩一次后,图片能被用很久,省下的流量更划算)。我已经优化了 cli 的速度,大概快了 20%,不过浏览器提升有限。正在优化浏览器的速度
    luin
        14
    luin  
    OP
       22h 57m ago
    @nie11kun 好想法!我加到计划中
    luin
        15
    luin  
    OP
       21h 9m ago
    @nie11kun 已经支持啦
    luin
        16
    luin  
    OP
       21h 8m ago
    @NickyPP 速度优化了,大概优化了 20%。再进一步的话就有一些挑战了,不过还有一些空间,还会继续优化
    luin
        17
    luin  
    OP
       4h 49m ago
    现在已经支持 webp 了
    FakerLeung
        18
    FakerLeung  
       4h 42m ago
    先 star
    RedisMasterNode
        19
    RedisMasterNode  
       4h 35m ago   ❤️ 1
    建议换个域名不要跟 png 绑定死
    bigxixi
        20
    bigxixi  
       4h 33m ago   ❤️ 1
    apng 动图可以压缩吗?
    Jack927
        21
    Jack927  
       4h 28m ago   ❤️ 1
    这个工具不错
    Overfill3641
        22
    Overfill3641  
       2h 25m ago
    PNG 风味 JPG ?
    luin
        23
    luin  
    OP
       2h 18m ago
    @RedisMasterNode 哈哈已经后悔了
    luin
        24
    luin  
    OP
       2h 17m ago
    @bigxixi 好问题,我研究一下
    luin
        25
    luin  
    OP
       1h 32m ago
    @bigxixi 已经支持啦
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5185 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 59ms · UTC 07:09 · PVG 15:09 · LAX 00:09 · JFK 03:09
    ♥ Do have faith in what you're doing.