将 mogrify 与 Image Magick 一起使用时如何重命名图像?
Posted
技术标签:
【中文标题】将 mogrify 与 Image Magick 一起使用时如何重命名图像?【英文标题】:How do I rename images when using mogrify with 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
【问题讨论】:
【参考方案1】:第 1 项:使用 Image Magick,要创建新文件而不是覆盖现有文件,请使用 convert
,而不是 mogrify
(magick 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 灵活得多。以上是关于将 mogrify 与 Image Magick 一起使用时如何重命名图像?的主要内容,如果未能解决你的问题,请参考以下文章
R语言使用magick包的image_write函数将已有图像以任何指定的格式导出保存到磁盘上(例如将原文将从png转化为jpeg)
闪亮的 Flexdashboard 中的 image_composite (Magick) 返回错误
R语言使用magick包的image_composite函数在一张图片的特定位置将另外一张图片合成上去(combining two images on a specific position)