16

I have 10k+ GIF files that I need to convert to PNG or JPEG preferably using command line so that I can automate it. I'm not worried about losing quality or transparency, just need to prepare files for OCR software.

When trying to use convertformat, I get this:

Error in pixReadStreamGif: function not present
Error in pixReadStream: gif: no pix returned
Error in pixRead: pix not read
Error in pixGetDepth: pix not defined
Error in pixWrite: pix not defined

Any ideas?

3 Answers 3

38

No need for any additional tools. OS X has sips, which can convert images to (almost) any format.

For example, to convert every .gif to .jpeg, putting them into a folder called jpegs:

mkdir jpegs
sips -s format jpeg ./*.gif --out jpegs

Or, to recursively convert them using find, which will place a JPEG file with the same name as the GIF next to it.

find . -iname "*.gif" -type f -exec sh -c 'sips -s format jpeg "$0" --out "${0%.gif}.jpeg"' {} \;
2
  • man sips ← This manual page is for Mac OS X version 10.9: sips -- scriptable image processing system.
    – iolsmit
    Jun 12, 2017 at 17:10
  • See below for updated answer.
    – Jay
    Jan 12, 2022 at 0:47
3

Rather old question I see, but unfortunately the slhck's solution two doesn't work for me (OS X Mountain Lion, bash) I get an error.

This one works for me (after cd my_dir_with_gif command of course):

for i in *.gif; do sips -s format jpeg "${i}" --out "${i%gif}jpg"; done

And if you want to set the jpg compression as well ([low|normal|high|best|<percent>])

for i in *.gif; do sips -s format jpeg -s formatOptions 100 "${i}" --out "${i%jpg}png"; done

For other formats you should change extensions (remembering the sips jpg format is always jpeg, the extension could be .jpg)

This using sips but even better ImageMagick. It's a great tool, and I suggest to install it using brew see brew homepage

0

Check out GraphicsMagick or ImageMagick, they have command line tools for all sort of mangling of graphics files (including boring stuff like transforming to another format).

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .