我正在尝试从命令行使用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
你可能想要这样的东西 - 请注意,你把-density
放在PDF文件名之前:
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