求教批量压缩 png 的最好方案 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
helloiac
V2EX    问与答

求教批量压缩 png 的最好方案

  •  1
     
  •   helloiac 2018-10-01 12:13:38 +08:00 4638 次点击
    这是一个创建于 2571 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有几千张要压缩后放七牛,目前比较了 tinypng、zhitu、pngquant。 tinypng 和 zhitu 在压缩率方面不相上下,pngquant 压缩率稍低,但好处是 cpu 占用率低、输出快、无使用限制。 而 zhitiu 太慢、CPU100%、风扇狂转,tinypng 要花钱。

    所以,求问有无兼顾其好处的更好方案。

    关于压缩率的一个比较: 129 张原本 82.1M ,zhitu 压缩万 23.5M ,pngquant 压缩完 26.3M ,tinypng 试了三两张,跟 zhitu 差距很小。

    29 条回复    2018-10-02 21:20:07 +08:00
    whileFalse
        1
    whileFalse  
       2018-10-01 12:28:57 +08:00
    几千张一天也压完了吧。
    helloiac
        2
    helloiac  
    OP
       2018-10-01 13:13:07 +08:00
    @whileFalse 用不了一天,几个小时就能弄完,可是调用不灵活,cpu 占用也高。
    whileFalse
        3
    whileFalse  
       2018-10-01 13:18:13 +08:00 via iPhone
    @helloiac 所以你的目的是什么呢?这是一次性的工作还是日常?一次性的就别纠结了。
    helloiac
        4
    helloiac  
    OP
       2018-10-01 13:26:28 +08:00
    @whileFalse 说不上日常,不过也不是一次性,是每月有那么几次会用上。
    kslr
        5
    kslr  
       2018-10-01 13:34:12 +08:00
    那么为什么你不把七牛图片压缩用上
    whileFalse
        6
    whileFalse  
       2018-10-01 13:48:36 +08:00
    @helloiac 写个小脚本呗,只要不需要人手动处理,我觉得时间长点短点差别不大。毕竟就几个小时,怕影响自己玩电脑可以夜里搞,或者趁自己不在的时候跑一下。

    如果用 tinypng 的话可以多申请几个 key 轮着用。
    wdhwg001
        7
    wdhwg001  
       2018-10-01 13:54:04 +08:00 via iPhone
    pingo 了解一下?
    msg7086
        8
    msg7086  
       2018-10-01 13:56:37 +08:00
    试过 imagemagick 吗?
    weeevv
        9
    weeevv  
       2018-10-01 14:10:00 +08:00 via Android
    Tensorflow 有个图片压缩库...
    weeevv
        10
    weeevv  
       2018-10-01 14:11:00 +08:00 via Android
    @weeevv 但是对低 bpp 的图片不友好,性能没具体测试过。
    xiaoz
        11
    xiaoz  
       2018-10-01 15:51:05 +08:00 via Android
    七牛就有压缩功能吧
    bydmm
        12
    bydmm  
       2018-10-01 16:12:59 +08:00 via iPhone
    七牛的图片处理是自带的
    helloiac
        13
    helloiac  
    OP
       2018-10-01 17:13:29 +08:00
    @bydmm @xiaoz @kslr 是的,谢谢提醒,忘了七牛可以压缩了。
    我一直没开启过那个选项,一是因为之前图片量不大,都是先本地压缩的,二是不知他压的效果怎样,没试过。

    有个疑惑,就是打开开关后某个 repo 以后要就全部走压缩了,好像不能针对批次开启、关闭了吧。一直在用 qrbox 这个比较老的客户端,反正没有类似的设置。
    yuanfnadi
        14
    yuanfnadi  
       2018-10-01 17:19:07 +08:00 via iPhone
    @helloiac 缩略图可以每张图片 url 后面加参数。压缩同理。
    压缩好像好价钱。
    dalieba
        15
    dalieba  
       2018-10-01 17:28:51 +08:00 via Android
    @whileFalse #6 同意,但是还要照顾一下 APNG
    wormcy
        16
    wormcy  
       2018-10-01 17:48:15 +08:00 via Android
    楼主七牛的压缩率怎么样
    gettext
        17
    gettext  
       2018-10-01 21:45:41 +08:00 via Android
    TinyPNG 很好用,直接开 Pro

    能用钱解决的,别用时间
    celeron533
        18
    celeron533  
       2018-10-01 21:47:56 +08:00
    imagemagick 应该也是可以调整 png 参数的
    kingcos
        19
    kingcos  
       2018-10-02 00:54:09 +08:00 via iPhone
    TinyPNG 挺好的,写个脚本
    lengyihan
        20
    lengyihan  
       2018-10-02 01:08:40 +08:00 via Android
    用一个 QQ 发给另一个 QQ 就压缩好了。完美。
    zhidian
        21
    zhidian  
       2018-10-02 02:07:27 +08:00
    如果你没有无损的必要,直接转 jpg。。。就好了
    9a6c5609806a
        22
    9a6c5609806a  
       2018-10-02 02:29:43 +08:00 via Android
    直接上 ffmpeg
    icyalala
        23
    icyalala  
       2018-10-02 03:34:59 +08:00 via iPhone
    这些都是有损压缩啊,不能光看压缩比,也要对比一下质量吧。

    不过既然都能接受有损了,不如换个其他格式~
    815979670
        24
    815979670  
       2018-10-02 09:36:41 +08:00 via Android
    又拍云压缩 webp 免费的
    helloiac
        25
    helloiac  
    OP
       2018-10-02 09:40:44 +08:00
    @wdhwg001 谢谢,已了解试用。有两个地方不好用,一是只能原地修改,不能直接设置输出路径,所以需要先复制一份再处理,有些麻烦;二是没发现怎么强制保持原格式,我用自动模式,结果一些 png 输出为 jpg 了。压缩率方面,跟 pngquant 比似乎没优势,不过处理挺快的。
    helloiac
        26
    helloiac  
    OP
       2018-10-02 09:47:20 +08:00
    @msg7086 图片最后一步就是 imagemagic 加字生成的,不过对它的压缩用法不了解,感觉没有这种传入直接输出的可靠。了解了下 imagemagic 的压缩,jpg 还是比较简单的,设置 quality 并用 strip 效果挺好,不过 png 就很麻烦了,调不好很可能越压越大。
    MonoLogueChi
        27
    MonoLogueChi  
       2018-10-02 10:11:35 +08:00 via Android   1
    不知道你是需要无损压缩还是有损压缩,无损压缩可以试试 gluttonyPNG,其实压缩率越高,CPU 占用肯定越高,耗时也一定越长,这是任何软件和算法都无法改变的
    ArthurTsang
        28
    ArthurTsang  
       2018-10-02 10:11:56 +08:00 via Android
    @helloiac #26 你要先查看下原图的 quality 是多少,比如原图 quality 是 75,你压缩时候设置 quality 是 80,那么它就会质量变大,你设置比 75 更低时候,才会变小
    cchange
        29
    cchange  
       2018-10-02 21:20:07 +08:00 via iPhone
    Irfanview 按 B 有批处理模式 很好用 只是你这个量确实有些大
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5775 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 01:49 PVG 09:49 LAX 18:49 JFK 21:49
    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