V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
garywill
V2EX  ›  奇思妙想

分享个批量压缩照片(以保存)shell。那么,有无能像 squoosh 那样可以即时对比压缩前后效果(批量)的软件?

  •  
  •   garywill · 2022-02-19 14:08:45 +08:00 · 2549 次点击
    这是一个创建于 768 天前的主题,其中的信息可能已经有所发展或是发生改变。

    具体提问前,首先分享个我自己的用来批量压缩的 shell

    它能将文件夹(递归)下的 jpg 文件找出来并批量压缩,输出到另一个位置,并保持原本的子目录结构

    https://gist.github.com/garywill/f9e0bd988d80f5cc915e822233f0b352

    上面的核心就是用 imagemagick 来convert -quality 40。 (我不是照片发烧友,只是存储生活照片,不考虑以后印海报什么的。

    自己发现,imagemagick 的 quality 设在 40 ,便满足(对我这样的来说):

    1. 大大地减少了体积
    2. 眼睛感觉不到损失

    批量压缩达到了。只是不方便压缩完成后对比照片效果。

    而,Google 开源了一个 web 工具( squoosh.app ),能够压缩照片并:

    1. 以鼠标左右拉动直接对比前后
    2. 随时任意放大缩小、平移,查看每一处前后效果

    Google 这个工具就只是不能批量

    23 条回复    2022-02-20 09:53:11 +08:00
    gstqc
        1
    gstqc  
       2022-02-19 14:17:13 +08:00 via Android
    用 40 的质量不如转换成 heic
    Kaciras
        2
    Kaciras  
       2022-02-19 14:17:32 +08:00
    对比的话不妨试试俺的工具 https://ic-analyzer.kaciras.com/

    不过同样不能批量,主要是批量的话性能太差
    wudicgi
        3
    wudicgi  
       2022-02-19 14:30:01 +08:00
    更建议买硬盘,照片和视频比起来几乎不占什么存储空间
    MacDows
        4
    MacDows  
       2022-02-19 14:41:00 +08:00 via Android
    那个工具可以批量的
    1OF7G
        5
    1OF7G  
       2022-02-19 15:37:50 +08:00
    squoosh.app 这个,页面 edit 菜单旁边有个 命令行 icon ,可以把当前 GUI 参数拷贝为命令行的。

    命令行程序是:npx @squoosh/cli
    also24
        6
    also24  
       2022-02-19 15:46:42 +08:00
    如果指的是 "批量压缩" 后 "单独对比",那 ppduck 是可以的

    https://ppduck.com/
    duke807
        7
    duke807  
       2022-02-19 15:53:50 +08:00 via Android
    @gstqc 看了一下,是蘋果用來圍困用戶的東西,沒興趣
    gstqc
        8
    gstqc  
       2022-02-19 16:30:03 +08:00 via Android
    whileFalse
        9
    whileFalse  
       2022-02-19 16:37:23 +08:00
    @gstqc @duke807 要不用 WebP 或者 AVIF 吧。前者在现代浏览器上的支持度不错,后者压缩效率更好但明显慢很多
    Kagari
        10
    Kagari  
       2022-02-19 16:52:49 +08:00
    可以用 jpeg xl,-d 0.5 ,自动用 butteraugli 测量,省了自己对比

    -d maxError, --distance=maxError
    Max. butteraugli distance, lower = higher quality. Range: 0 .. 25.
    0.0 = mathematically lossless. Default for already-lossy input (JPEG/GIF).
    1.0 = visually lossless. Default for other input.
    Recommended range: 0.5 .. 3.0.
    但是现在 JXL 现在才到 v0.6 ,与此同时 AVIF 已经 v0.9 了
    whileFalse
        11
    whileFalse  
       2022-02-19 17:39:56 +08:00
    @Kagari jxl 和 avif 的压缩率比起来如何?
    Kagari
        12
    Kagari  
       2022-02-19 17:53:07 +08:00
    @whileFalse #11 高 bpp jxl ,低 bpp avif
    duke807
        13
    duke807  
       2022-02-19 18:06:57 +08:00 via Android
    @gstqc 我首先就看了 wiki ,然後看了這個知乎:
    https://www.zhihu.com/question/266966789
    有個有個匿名言論我比較認同:
    "为了耍流氓,逼你买苹果设备,让你入了坑就出不来。"

    未來的視頻和圖片編碼是 av1 ,無版權費用,軟硬件大廠們達成共識的選擇。

    你現在推薦大家用一個有版權費複雜,且不被主流支持的圖片格式,難道不是有問題嗎?
    gstqc
        14
    gstqc  
       2022-02-19 18:18:44 +08:00 via Android
    @duke807 有版权费的东西多去了,你手机里的 hevc 就有版权费
    我很讨厌苹果,但没想到这锅也能扣苹果头上

    你爱用啥用啥,关我屁事
    garywill
        15
    garywill  
    OP
       2022-02-19 18:30:23 +08:00
    补充一下,想要的 [批量] ,是 [批量压缩] ,并且然后能 [批量视觉直接对比] ,快速换图不用一张张 load 。

    @Kagari 大佬专业。 关于 butteraugli 我搜了一下是个 cli 工具,应该有用( butteraugli 算比较环节中的一个工具,还不是一个 [GUI 的批量比较工具] )
    但 butteraugli 只能自己编译吗?

    另外,我把批量压缩视频的 shell 也放到 gist 那里了。就是
    ffmpeg -c:v libx265 -c:a aac -preset veryslow
    大佬们也顺便评论下吧。批量压缩视频有了,批量比较视频前后有无?
    Kagari
        16
    Kagari  
       2022-02-19 18:38:08 +08:00   ❤️ 1
    heic 在苹果平台以外的兼容性很差
    但是按照发展,avif 也可以塞到 heic 里面
    谁也说不好取代 jpeg 的是哪个格式

    @garywill
    视频直接走 ffmpeg 的 psnr 和 ssim ,这个应该是优选了
    肉眼对比损失是最好的。jxl 格式在-d 时,会自动根据 butteraugli 控制质量
    https://github.com/libjxl/libjxl/releases
    jim9606
        17
    jim9606  
       2022-02-19 19:08:50 +08:00
    @duke807
    话不能这么说,HEIC 图片的通用性还是比 HEVC 视频强一些的,Win 和 Android 基本都支持。至少 Win10 的 HEIC 解码器不需要花钱买。
    AVIF 目前的情况是 apple 和 edge 不支持(后者以后应该会支持),而且软解巨慢无比,硬解没铺开前我对这个并不乐观。
    yukiww233
        18
    yukiww233  
       2022-02-19 19:10:22 +08:00   ❤️ 1
    old9
        19
    old9  
       2022-02-19 21:16:34 +08:00 via Android
    不理解,想不出来“批量视觉直接对比”的 UI 交互应该是什么样的
    3dwelcome
        20
    3dwelcome  
       2022-02-19 21:58:15 +08:00
    @Kaciras 可以把 wasm 换成 webgpu GLSL 显卡直压图片,批处理性能就没问题了。

    显卡就是专门干图片方面的,哪怕压个 BC5 ,也比 CPU 快太多。

    而 wasm 就纯粹是 CPU 计算压缩。
    duke807
        21
    duke807  
       2022-02-19 22:50:31 +08:00 via Android
    @jim9606
    AV 必勝,因為大家都喜歡看
    Kaciras
        22
    Kaciras  
       2022-02-19 22:55:26 +08:00
    @3dwelcome 看了下,是个新技术浏览器还都不兼容,现在还是只能 CPU 。
    garywill
        23
    garywill  
    OP
       2022-02-20 09:53:11 +08:00
    @old9 说白了,想要的也就是 squoosh+可以快速切换图片
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3273 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 11:51 · PVG 19:51 · LAX 04:51 · JFK 07:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.