ImageMagick命令行:将PDF转换为高清图像

5
我正在尝试使用命令行中的imagemagick将PDF文件实时转换为图像。这些PDF具有非常高的清晰度,我希望获得相关图像(JPG格式)。
通常我使用Gimp,在该软件下将这些PDF转换为600dpi后,质量非常棒。但是我不想一个一个地用Gimp转换超过500张图片...... 这就是为什么我转向ImageMagick,特别是因为越来越经常需要实时转换图像文件,我想掌握这类工具。
然而,使用ImageMagick,即使设置了600dpi的密度,我仍然默认获得非常小的图像(类型为468x705)。
convert *.pdf -density 600 -quality 100 *.jpg

我添加了一个resize命令(也尝试了scale),图片的分辨率更高(为4680x7050),但像素化程度却如同保持在默认分辨率下一样。
convert *.pdf -resize 1000% -density 600 -quality 100 *.jpg

我甚至认为它可能来自订单的顺序,但这并不改变任何事情:

convert *.pdf -density 600 -resize 1000% -quality 100 *.jpg

一个想法?

附带问题(不太关键):如何将目标文件与原始文件保持相同的名称?

编辑:除了Mark Setchell提出的for循环之外,我刚刚发现你可以使用 mogrify。示例:

mogrify -format jpg -density 600 -blur 1x1 -quality 100 *.pdf

1个回答

7
您可能需要这样做 - 请注意,您需要在PDF文件名之前放置-density指令:
for f in *.pdf; do convert -density 144 "$f" "${f%pdf}jpg"; done

有点棘手的是要把 pdf 扩展名删除,并替换为 jpg,我使用了 "bash 参数替换",这在这里描述得非常清楚。


长话短说,就是

for f in *.pdf; do 
   convert -density 144 "$f" "${f%pdf}jpg"
done

另一个选择是使用 mogrify

mogrify -density 144 -format jpg *pdf

如果您已经安装了GNU Parallel,您可以像这样更加可读且更快地执行:

parallel convert -density 144 {} {.}.jpg ::: *pdf

非常感谢。我通过添加“-blur 1x1”找到了一个与Gimp相似的设置。 - Olivier C
我不得不使用mogrify并加上-density 600,-blur 1x1和-quality 100选项来获得良好的输出质量。本答案中列出的标志不足以实现此目的。 - poleguy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接