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

时间:2017-08-03 12:23:49

标签: image pdf imagemagick

我尝试使用imagemagick从命令行将PDF文件转换为动态图像。这些PDF格式非常清晰,我想获得相关图像(JPG)。

通常使用Gimp,当我在这个软件下将这些PDF转换为600dpi时,质量是超级顶级的。但是我没有看到自己用Gimp一个接一个地转换超过500张图像...这就是我转向ImageMagick的原因,特别是因为我在飞行中转换图像文件的次数越来越多,我想掌握这种工具。

唉,使用ImageMagick,默认情况下我得到非常小的图像(类型468x705),尽管密度设置为600dpi:

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 个答案:

答案 0 :(得分:4)

您可能想要这样的内容 - 请注意您在之前放置了-density

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

棘手的部分是删除pdf扩展名并将其替换为jpg,我使用了“bash参数替换”,这是一个很好的描述here

从长远来看,那就是

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