Image format conversion from terminal?
Is there any way to convert image formats from Ubuntu terminal?
Particularly from eps to png/jpg or to any other formats.
You can use the imagemagick
command line tool
http://www.imagemagick.org/script/convert.php
You can use it like this:
convert myfile.eps foo.png
For anyone who lands here trying to figure out how to work around ImageMagic's convert: not authorized
without reverting the change that was made to the system-wide security policy to close a vulnerability, here's how to rasterize EPS files by calling Ghostscript directly:
gs -dSAFER -dBATCH -dNOPAUSE -dEPSCrop -r600 -sDEVICE=pngalpha -sOutputFile=foo.png myfile.eps
-
-dSAFER
puts Ghostscript in a sandboxed mode where Postscript code can only interact with the files you specified on the command line. (Yes, the parts of EPS, PS, and PDF files that define the page contents are in a turing-complete programming language.) -
-DBATCH
causes it to quit when it reaches the end of the input file, rather than switching to an interactive PostScript prompt. -
-dNOPAUSE
prevents it from prompting to continue after each page -
-dEPSCrop
asks for the rendered output to be cropped to the bounding box of the drawing rather than padded out to the declared page size (See the manual for details.) - The
-r600
specifies the DPI you want to render at - The
-sDEVICE
specifies the output format (See the Devices section of the manual for other choices.)
UPDATE: I've since learned that -o foo.png
is a cleaner, easier-to-remember shorthand for -dBATCH -dNOPAUSE -sOutputFile=foo.png
so the better command would be this:
gs -dSAFER -dEPSCrop -r600 -sDEVICE=pngalpha -o foo.png myfile.eps
The manual also mentions that, some day, they eventually hope to be able to make -dSAFER
the default though, given backwards compatibility needs, who knows if that will ever happen.