helloiac
V2EX  ›  问与答

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

  •  1
     
  •   helloiac · Oct 1, 2018 · 5519 views
    This topic created in 2959 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

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

    能用钱解决的,别用时间
    celeron533
    celeron533
    Oct 1, 2018
    18
    imagemagick 应该也是可以调整 png 参数的
    kingcos
    kingcos
    Oct 2, 2018 via iPhone
    19
    TinyPNG 挺好的,写个脚本
    lengyihan
    lengyihan
    Oct 2, 2018 via Android
    20
    用一个 QQ 发给另一个 QQ 就压缩好了。完美。
    zhidian
    zhidian
    Oct 2, 2018
    21
    如果你没有无损的必要,直接转 jpg。。。就好了
    9a6c5609806a
    9a6c5609806a
    Oct 2, 2018 via Android
    22
    直接上 ffmpeg
    icyalala
    icyalala
    Oct 2, 2018 via iPhone
    23
    这些都是有损压缩啊,不能光看压缩比,也要对比一下质量吧。

    不过既然都能接受有损了,不如换个其他格式~
    815979670
    815979670
    Oct 2, 2018 via Android
    24
    又拍云压缩 webp 免费的
    helloiac
    helloiac
    OP
    Oct 2, 2018
    25
    @wdhwg001 谢谢,已了解试用。有两个地方不好用,一是只能原地修改,不能直接设置输出路径,所以需要先复制一份再处理,有些麻烦;二是没发现怎么强制保持原格式,我用自动模式,结果一些 png 输出为 jpg 了。压缩率方面,跟 pngquant 比似乎没优势,不过处理挺快的。
    helloiac
    helloiac
    OP
    Oct 2, 2018
    26
    @msg7086 图片最后一步就是 imagemagic 加字生成的,不过对它的压缩用法不了解,感觉没有这种传入直接输出的可靠。了解了下 imagemagic 的压缩,jpg 还是比较简单的,设置 quality 并用 strip 效果挺好,不过 png 就很麻烦了,调不好很可能越压越大。
    MonoLogueChi
    MonoLogueChi
    Oct 2, 2018 via Android❤️1
    27
    不知道你是需要无损压缩还是有损压缩,无损压缩可以试试 gluttonyPNG,其实压缩率越高,CPU 占用肯定越高,耗时也一定越长,这是任何软件和算法都无法改变的
    ArthurTsang
    ArthurTsang
    Oct 2, 2018 via Android
    28
    @helloiac #26 你要先查看下原图的 quality 是多少,比如原图 quality 是 75,你压缩时候设置 quality 是 80,那么它就会质量变大,你设置比 75 更低时候,才会变小
    cchange
    cchange
    Oct 2, 2018 via iPhone
    29
    Irfanview 按 B 有批处理模式 很好用 只是你这个量确实有些大
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   774 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 23:12 · PVG 07:12 · LAX 15:12 · JFK 18:12
    ♥ Do have faith in what you're doing.