tinypng 图片压缩的原理是什么? - V2EX
hx100

tinypng 图片压缩的原理是什么?

  •  
  •   hx100 1 day ago 1725 views
    tinypng 图片压缩的原理是什么,为啥能保持那么高的压缩率,像素几乎没什么丢失呢?有没有类似的开源产品
    14 replies    2026-05-11 13:34:56 +08:00
    keyboardCat
        1
    keyboardCat  
       1 day ago
    独家技术,开源了就没法收费了吧。
    cst4you
        2
    cst4you  
       1 day ago
    调色板降到 256 色, 然后颜色算法
    bagel
        3
    bagel  
       1 day ago
    无损压缩,哪来的像素丢失。本质就是 cpu 时间换空间,因为编码有很多种参数选择,多花点时间试出来一个压缩率高的。
    codehz
        4
    codehz  
       1 day ago
    颜色量化和通过暴力枚举 filter 的方式找到最优化的压缩方案
    codehz
        5
    codehz  
       1 day ago   2
    @bagel tingpng 的还真的就是有损的压缩,压完的 png 和原始 png 直接对比的话颜色会有很多差异(虽然一眼看不出)
    IamJ
        6
    IamJ  
       1 day ago
    chutsetien
        7
    chutsetien  
       1 day ago
    @bagel
    @codehz

    codehz 说的是对的,无损的那个是 optipng, 花的时间更久,而且有时压不了多少,但确实无损。不过用 png 肯定就是想要无损,有损还不如直接 cjpegli.
    Chicagoake
        8
    Chicagoake  
       1 day ago
    没研究过这些东西,但是相机内常见的压缩功能一般不会压缩图片像素量,而是压缩高光、暗部细节,色彩过渡等,一张照片被压缩后天空的色彩过渡会断层严重。
    codehz
        9
    codehz  
       1 day ago
    @chutsetien 主要是能保留透明度而且兼容性较好,现在是有 webp 可以,但前些年 webp/avif 这些格式还没那么兼容(
    ntedshen
        10
    ntedshen  
       1 day ago
    下个 ffmpeg ,玩 palettegen 去。。。
    passive
        11
    passive  
       1 day ago via Android
    pngout 免费但不开源,开源用 zopfli
    xiangyuecn
        12
    xiangyuecn  
       1 day ago
    虽然是古董,但还有在更新,严重怀疑 tinypng 就是用的 pngquant

    https://pngquant.org/

    https://github.com/kornelski/pngquant
    hx100
        13
    hx100  
    OP
       1 day ago
    感谢各位的回复,我去学习下
    andyskaura
        14
    andyskaura  
       1 day ago
    类似的有谷歌的 squoosh.app
    About     Help     Advertise     Blog     API     FAQ     Solana     3526 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 688ms UTC 11:56 PVG 19:56 LAX 04:56 JFK 07:56
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86