如何使用具有特定输出文件名格式的 ImageMagick 将 MTIFF 转换为 PNG?

How to convert MTIFF to PNG with ImageMagick with a specific output filename format?

我知道 ImageMagick 转换命令可以将单个多页 TIFF 转换为多个 PNG 文件。

什么转换命令选项允许我指定输出文件名格式?

根据我的研究,我尝试了以下选项但没有成功。

convert original.tif -format PNG -set filename:area '%t-PAGE-%p' "%[filename:area]"

如果 original.tif 文件包含 3 页,我希望有 3 个新的 PNG 文件,文件名:

original-PAGE-0.PNG
original-PAGE-1.PNG
original-PAGE-2.PNG

注意 我了解到在 ImageMagick ver 6.2 之前,输出文件名被格式化 <original_filename>.<format_suffix>.<image_number>。由于后缀是图像编号,这导致了问题,因此,对于版本 6.2 和更高版本,输出文件名现在被格式化为 <original_filename>-<image_number>.<format_suffix>!

例如image.png.0 对比图像-0.png

这适用于 IM 6.9.10.68 Q16 Mac OSX。只需添加您的后缀。以下每个tif由3页组成。

convert logo1.tif logo2.tif -set filename:fn '%t-PAGE-%p' "%[filename:fn].png"


但是,即使名称不同,结果上的编号也是连续的。

logo1-PAGE-0.png
logo1-PAGE-1.png
logo1-PAGE-2.png
logo2-PAGE-3.png
logo2-PAGE-4.png
logo2-PAGE-5.png


我不知道你可以用 convert 做其他事情。

另一种方法, 是将您的几张图片放入一个文件夹(我使用 test1)并使用 mogrify。然后创建一个新目录来保存输出(我使用 test2)。然后 cd 到输入图像文件夹。然后 运行:

mogrify -path ../test2 -format png *.tif


产生:

logo1-0.png
logo1-1.png
logo1-2.png
logo2-0.png
logo2-1.png
logo2-2.png


不幸的是,mogrify 不如 convert 灵活,并且不支持 -set 文件名。但至少现在每张图片的编号从 -0 开始。

我的解决方案是更新到更新版本的 ImageMagick(v6.2 或更新版本),因为在 ImageMagick 版本 6.2 之前,页码是输出文件名中的后缀:

<original_filename>.<format_suffix>.<image_number>

e.g. image.png.0

从 IM 6.3 开始,页码移到文件名后缀之前:

<original_filename>-<image_number>.<format_suffix>

e.g. image-0.png