14

У меня есть 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 ответа3

32

Нет необходимости в каких-либо дополнительных инструментах. 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"' {} \;
2

Я вижу довольно старый вопрос, но, к сожалению, решение 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 см. Домашнюю страницу brew

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .