【问题标题】:Resize some images with mogrify to another directory to same filename使用 mogrify 将一些图像调整到另一个目录到相同的文件名
【发布时间】:2015-04-04 10:18:13
【问题描述】:

这些是我目录中的文件:

01.png  01_v2.png  02.png  02_v2.png

我想:

  1. 只需01_v2.png02_v2.png
  2. 将其大小调整为750x1334
  3. 放在父目录04_4,7
  4. 但文件名相同01_v2.png02_v2.png

我来到了这个命令:

mogrify *_*.png -resize 750x1334 ../04_4,7/*.png

此命令对第 1-3 点有效,但对第 4 点无效。

01_v2.png 重命名为01.png02_v2.png 重命名为02.png,但我希望输出文件名与输入文件名相同。

【问题讨论】:

    标签: regex bash imagemagick mogrify


    【解决方案1】:

    这看起来更像是一个 shell 问题而不是 imagemagick,不是吗?

    假设一个类似 bash 的 shell,您可以执行以下操作:

    for f in 01_v2.png 02_v2.png; do
        convert "$f" -resize 750x1334 "../04_4,7/$f"
    done
    

    【讨论】:

    • 我发现这个作品convert *_*.png -resize 750x1334 -set filename:f '%t' ../04_4,7/'%[filename:f].png'。我不知道 mogrify 是否可以。
    • 抱歉,我不记得 mogrify 和 convert 之间的区别。 imagemagick 网站说:“mogrify 与转换类似,只是原始图像文件被覆盖(除非您使用 -format 选项更改文件后缀),并根据您的要求进行任何更改。”因此,您可以在您的情况下使用 convert ...
    【解决方案2】:

    不清楚您是否为此使用 bash,但如果您是 find 命令应该可以工作:

    find . -iregex '^.*_v.\.png' -exec mogrify -path ../04_4,7/ -resize 750x1334 {} \;
    

    搜索任何带有(2 chars)_(letter "v")(1 char).png的文件file,然后执行mogrify命令进入-path之后指定维度的目录。

    【讨论】:

      【解决方案3】:

      最简单的方法是这样的:

      mogrify  -path ../04_4,7  -resize 750x1334  *v2.png
      

      注意:

      -path设置输出目录

      *v2.png 选择输入文件

      【讨论】:

        猜你喜欢
        • 2017-12-11
        • 2018-03-13
        • 2016-11-09
        • 1970-01-01
        • 1970-01-01
        • 2020-04-11
        • 1970-01-01
        • 2019-03-09
        • 1970-01-01
        相关资源
        最近更新 更多