从终端转换图像格式?

Soo*_*j S 33 command-line image-processing eps

有没有办法从 Ubuntu 终端转换图像格式?

特别是从 eps 到 png/jpg 或任何其他格式。

小智 28

您可以使用imagemagick命令行工具

http://www.imagemagick.org/script/convert.php

你可以这样使用它:

convert myfile.eps foo.png
Run Code Online (Sandbox Code Playgroud)

  • 我建议也使用`-density` 选项,例如`convert -density 150 myfile.eps foo.png`。默认密度仅为 72 dpi,看起来很厚实。 (15认同)
  • `convert-im6.q16:尝试执行安全策略 PDF @ error/constitute.c/IsCoderAuthorized/408 不允许的操作。` - 您需要阅读此内容才能克服它 https://stackoverflow.com/a /53180170/2324000 (5认同)

sso*_*low 22

对于到达这里试图找出如何在convert: not authorized不恢复对系统范围安全策略所做的更改以关闭漏洞的情况下解决 ImageMagic 的任何人,以下是通过直接调用 Ghostscript 来光栅化 EPS 文件的方法:

gs -dSAFER -dBATCH -dNOPAUSE -dEPSCrop -r600 -sDEVICE=pngalpha -sOutputFile=foo.png myfile.eps
Run Code Online (Sandbox Code Playgroud)
  • -dSAFER将 Ghostscript 置于沙盒模式,其中 Postscript 代码只能与您在命令行中指定的文件进行交互。(是的,EPS、PS 和 PDF 文件中定义页面内容的部分采用图灵完备的编程语言。)
  • -DBATCH 导致它在到达输入文件末尾时退出,而不是切换到交互式 PostScript 提示。
  • -dNOPAUSE 防止它在每页后提示继续
  • -dEPSCrop要求将渲染输出裁剪到绘图的边界框,而不是填充到声明的页面大小(有关详细信息,请参阅手册。)
  • -r600指定的DPI要呈现在
  • 所述-sDEVICE指定输出格式(见设备部分的手册其他选择。)

更新:我后来了解到这-o foo.png是一个更清晰、更容易记住的速记,-dBATCH -dNOPAUSE -sOutputFile=foo.png所以更好的命令是这样的:

gs -dSAFER -dEPSCrop -r600 -sDEVICE=pngalpha -o foo.png myfile.eps
Run Code Online (Sandbox Code Playgroud)

该手册还提到-dSAFER,考虑到向后兼容性需求,谁知道这是否会发生,他们最终希望有一天能够成为默认值。