【问题标题】:How do I rename images when using mogrify with Image Magick?将 mogrify 与 Image Magick 一起使用时如何重命名图像?
【发布时间】:2021-03-26 00:38:28
【问题描述】:

我正在尝试自动将图像转换为指定的 tif 格式。我把它转换得很好,但还需要在文件名的末尾和每个转换文件的扩展名之前添加“_GS”。以下是我所拥有的,但没有找到将“_GS”添加到文件名的解决方案。提前感谢您的帮助。

for f in "$@"
do
    echo "$f"
/usr/local/bin/mogrify -density 300 -resize 1000x1000 -type grayscale -define tiff:endian=msb -compress LZW -format tif "$f" [0] 
done

【问题讨论】:

    标签: bash imagemagick mogrify


    【解决方案1】:

    第 1 项:使用 Image Magick,要创建新文件而不是覆盖现有文件,请使用 convert,而不是 mogrifymagick convert 使用较新版本的 IM)。

    第 2 项:您可以使用 shell 参数扩展来删除扩展名,然后从中构建新文件名和新后缀:

    for f in "$@"
    do
        echo "$f"
        /usr/local/bin/convert "$f" -density 300 -resize 1000x1000 -type grayscale \
          -define tiff:endian=msb -compress LZW -format tif "${f%.*}_GS.tiff"
    done
    

    ${variable%pattern} 返回variable 的扩展,并从末尾删除pattern 的最短匹配。

    【讨论】:

    • 注意将原始文件名在参数中的位置移动到convert,并将其分成两行以便于阅读。
    • 感谢您的帮助,它正在工作,但结果是创建了一个附加文件。 4.ext更改为4_GS.tiff,然后创建另一个文件4_GS_GS.tiff
    • 听起来你在一个目录中的所有文件上运行了多次。
    • 对不起,我对脚本有点陌生,但我似乎无法弄清楚为什么它会第二次运行。我正在使用带有文件夹操作的自动机。我唯一能想到的是当它创建第一个 *_GS.tif 时,该文件夹将其视为一个新文件并再次运行该脚本。但如果是这样的话,它不是无限的吗?如此接近,再次感谢您的帮助。
    • 最好写一个简单的脚本循环而不是转换。 Convert 比旧的 mogrify 灵活得多。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-10
    • 2021-02-17
    • 1970-01-01
    • 2019-10-25
    • 2022-06-21
    • 1970-01-01
    • 2022-10-24
    相关资源
    最近更新 更多