我尝试使用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
答案 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