How to convert GIF files to PNG or JPEG in OS X with command line?

15

8

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?

Sherzod

Posted 2013-03-25T03:17:23.387

Reputation: 253

Answers

34

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"' {} \;

slhck

Posted 2013-03-25T03:17:23.387

Reputation: 182 472

man sips ← This manual page is for Mac OS X version 10.9: sips -- scriptable image processing system. – iolsmit – 2017-06-12T17:10:45.380

2

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

Steve

Posted 2013-03-25T03:17:23.387

Reputation: 123

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).

vonbrand

Posted 2013-03-25T03:17:23.387

Reputation: 2 083