2014-10-02 61 views
0

我正在考虑使用ImageMagick从PDF文件中提取单个页面中的图像。我如何捕获由它生成的文件的名称?看起来-verbose选项包含有关生成文件的信息,但这是收集该文件的可靠方法吗?任何其他的选择?捕获ImageMagick生成的图像信息

+1

不知道我明白这一点......如果你有'FreddyFrog.pdf'并且你使用IM'convert'来创建e'PeppaPig.jpg',你想要捕捉什么?您的文件系统中已经有了输入文件和输出文件。对不起,如果我是愚蠢的。 – 2014-10-02 14:26:06

+0

如果我有'FreddyFrog.pdf',它可能会生成'FreddyFrog [1] .png','FreddyFrog [2] .png',直到'FreddyFrog [n] .png'。我不知道它有多少页面。 ImageMagick知道它产生了多少。我想调用这个命令,然后希望在stdout上捕获一些内容以知道它生成了多少,以及这些文件的名称是什么。 – 2014-10-03 06:03:47

回答

0

取决于你想做的事,我想你至少有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

您可以用shell 画一条线在沙你转换文件之前,然后找到一切新算账:前

> 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

+0

这是什么运气? – 2014-10-06 15:20:07

+0

你是怎么做到的? – 2014-10-07 15:53:47