捕获有关ImageMagick生成的图像的信息

捕获有关ImageMagick生成的图像的信息,imagemagick,Imagemagick,我正在考虑使用ImageMagick从PDF文件的各个页面提取图像。如何捕获由它生成的文件的名称?-verbose选项似乎包含生成文件的信息,但这是一种可靠的收集方法吗?还有其他选择吗?根据你想做什么,我认为你至少有3个选择 选项1 如果您想事先知道前面的页数,可以让ImageMagick这样告诉您: identify -format %n FreddyFrog.pdf 8 或者如果你想把它放在变量中 pages=$(identify -format %n FreddyFrog.pdf) ec

我正在考虑使用ImageMagick从PDF文件的各个页面提取图像。如何捕获由它生成的文件的名称?
-verbose
选项似乎包含生成文件的信息,但这是一种可靠的收集方法吗?还有其他选择吗?

根据你想做什么,我认为你至少有3个选择

选项1

如果您想事先知道前面的页数,可以让ImageMagick这样告诉您:

identify -format %n FreddyFrog.pdf
8
或者如果你想把它放在变量中

pages=$(identify -format %n FreddyFrog.pdf)
echo $pages
8
选项2

您可以告诉ImageMagick如何格式化输出文件的名称,如下所示,其中
%04d
表示使用4位数字和带零的前键盘:

convert -density 72 FreddyFrog.pdf FreddyFrog-%04d.tif
然后您将自动知道输出文件的名称

ls FreddyFrog-*
FreddyFrog-0000.tif FreddyFrog-0003.tif FreddyFrog-0006.tif
FreddyFrog-0001.tif FreddyFrog-0004.tif FreddyFrog-0007.tif
FreddyFrog-0002.tif FreddyFrog-0005.tif
选项3

在转换文件之前,您可以使用外壳在沙子中画一条线,然后再查找所有更新的文件:

> before                                                    # or "touch before" if you prefer
convert FreddyFrog.....                                     # strut your IM stuff
for f in *; do [[ "$f" -nt before ]] && echo $f; done       # list files newer than line in sand
rm before                                                   # clean up

rm before

我不确定我是否理解这一点。。。如果您有
FreddyFrog.pdf
,并且您使用IM
convert
创建
peppipag.jpg
,您想要捕获什么?文件系统中已经有输入文件和输出文件。抱歉,我太笨了。如果我有
FreddyFrog.pdf
,它可能会生成
FreddyFrog[1].png
FreddyFrog[2].png
,直到
FreddyFrog[n].png
。我不知道它有多少页。ImageMagick知道它生成了多少。我想调用这个命令,然后希望在stdout上捕获一些东西,以了解它生成了多少,以及文件的名称。您是如何处理的?