V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
helloiac
V2EX  ›  问与答

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

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

    有几千张要压缩后放七牛,目前比较了 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   ·   实用小工具   ·   2825 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 13:17 · PVG 21:17 · LAX 05:17 · JFK 08:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.