ImageMagick 命令行:将 PDF 转换为高清图像
Posted
技术标签:
【中文标题】ImageMagick 命令行:将 PDF 转换为高清图像【英文标题】:ImageMagick command line: converting PDF to high definition images 【发布时间】:2018-01-11 01:15:43 【问题描述】:我正在尝试使用命令行中的 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】:您可能想要这样的东西 - 请注意您将-density
放在 PDF 文件名之前:
for f in *.pdf; do convert -density 144 "$f" "$f%pdfjpg"; done
棘手的部分是删除pdf
扩展并将其替换为jpg
,我使用了“bash 参数替换”,这很好地描述了here。
一般来说,就是
for f in *.pdf; do
convert -density 144 "$f" "$f%pdfjpg"
done
另一个选项是mogrify
:
mogrify -density 144 -format jpg *pdf
如果您安装了 GNU Parallel,您可以像这样更易读、更快:
parallel convert -density 144 ..jpg ::: *pdf
【讨论】:
非常感谢。所以我通过添加-blur 1x1
找到了一个与 Gimp 非常相似的设置
我不得不使用 mogrify 和 -density 600 -blur 1x1 -quality 100 选项来获得高质量的输出。此答案中列出的标志还不够。以上是关于ImageMagick 命令行:将 PDF 转换为高清图像的主要内容,如果未能解决你的问题,请参考以下文章
将 ImageMagick 命令转换为 GraphicsMagick
使用 ImageMagick 将 pdf 转换为 png 时出错
ImageMagick 将具有多页的 pdf 转换为高质量的 PNG