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 时出错

将PDF转换为图像时,ImageMagick会更改颜色

ImageMagick 将具有多页的 pdf 转换为高质量的 PNG

ImageMagick或GhostScript:将多页TIFF转换为多页PDF

ImageMagick 未授权将 PDF 转换为图像