首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ImageMagick命令行:将PDF转换为高清晰度图像

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

Stack Overflow用户
提问于 2017-08-03 12:23:48
回答 1查看 9.3K关注 0票数 4

我正在尝试使用命令行的imagemagick将PDF文件转换为动态图像。这些PDF是在非常高的清晰度,我想得到相关的图像(JPG)。

通常使用Gimp,当我转换这些PDF到600 top在这个软件下的质量是超级顶。但我没有看到我自己一个接一个地转换500多幅图像.这就是为什么我转向ImageMagick的原因,特别是因为我越来越频繁地动态转换图像文件,我想掌握这种工具。

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

代码语言:javascript
运行
复制
convert *.pdf -density 600 -quality 100 *.jpg

因此,我添加了一个resize命令(我也尝试了scale),该图像的定义要高得多(类型为4680x7050),但是像素化,就好像我一直保留在默认定义中一样:

代码语言:javascript
运行
复制
convert *.pdf -resize 1000% -density 600 -quality 100 *.jpg

我甚至认为它可能来自于命令的顺序,但这并没有改变任何事情:

代码语言:javascript
运行
复制
convert *.pdf -density 600 -resize 1000% -quality 100 *.jpg

一个主意?

次要问题(但不那么重要):如何将目标文件的名称与原始文件保持相同的名称?

编辑:除了Mark提出的for循环之外,我刚刚发现您可以使用mogrify。示例:

mogrify -format jpg -density 600 -blur 1x1 -quality 100 *.pdf

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-03 12:53:31

您可能需要这样的东西--请注意,您将-density 放在 PDF文件名之前:

代码语言:javascript
运行
复制
for f in *.pdf; do convert -density 144 "$f" "${f%pdf}jpg"; done

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

在长时间内,那就是

代码语言:javascript
运行
复制
for f in *.pdf; do 
   convert -density 144 "$f" "${f%pdf}jpg"
done

另一种选择是使用mogrify

代码语言:javascript
运行
复制
mogrify -density 144 -format jpg *pdf

如果安装了GNU并行,则可以更容易、更快地这样做:

代码语言:javascript
运行
复制
parallel convert -density 144 {} {.}.jpg ::: *pdf
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45484105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档