Как преобразовать файлы GIF в PNG или JPEG в OS X с помощью командной строки?

У меня есть 10k+ GIF-файлы, которые мне нужно конвертировать в PNG или JPEG, желательно с использованием командной строки, чтобы я мог автоматизировать их. Я не беспокоюсь о потере качества или прозрачности, просто нужно подготовить файлы для программного обеспечения OCR.

При попытке использовать convertformatЯ получаю это:

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

Есть идеи?

3 ответа

Нет необходимости в каких-либо дополнительных инструментах. OS X имеет sips, который может конвертировать изображения в (почти) любой формат.

Например, чтобы преобразовать каждый .gif в .jpeg, поместив их в папку с именем jpegs:

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

Или, чтобы рекурсивно преобразовать их, используя find, который поместит файл JPEG с тем же именем, что и GIF, рядом с ним.

find . -iname "*.gif" -type f -exec sh -c 'sips -s format jpeg "$0" --out "${0%.gif}.jpeg"' {} \;

Я вижу довольно старый вопрос, но, к сожалению, решение slhck два не работает для меня (OS X Mountain Lion, bash) Я получаю ошибку.

Этот работает для меня (после cd my_dir_with_gif команда конечно)

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

И если вы хотите установить сжатие JPG ([low|normal|high|best|<percent>])

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

Для других форматов вы должны изменить расширения (помня формат sips jpg всегда jpegрасширение может быть .jpg)

Это с помощью sips но еще лучше ImageMagick. Это отличный инструмент, и я предлагаю установить его с помощью brew см. домашнюю страницу варева

Проверьте GraphicsMagick или ImageMagick, у них есть инструменты командной строки для всех видов искажения графических файлов (включая скучные вещи, такие как преобразование в другой формат).

Другие вопросы по тегам