Массовое преобразование изображений из одного формата в другой?


44

Я хочу конвертировать пакет изображений, почти 100, из формата JPG в PNG. Как я могу сделать это, не переименовывая их, а вместо этого фактически конвертируя формат?


Используйте convertкоманду. Нет, правда. Но вам захочется переименовать их из some.jpg в нечто.png.
Jos

1
@jos, из твоего комментария я не понимаю, что мне делать !!
opu 웃

Я не закончил редактирование ;-) Сначала используйте convertкоманду для одного файла .jpg и посмотрите, работает ли он. Затем напишите скрипт, который перебирает файлы .jpg и преобразует их в файлы .png.
Йос

Вы не упомянули, как я могу использовать convertкоманду в одном файле .jpg. И я не знаю, как написать скрипт, который перебирает файлы .jpg.
opu 웃

Ответы:


65

Попробуйте эти команды,

mogrify -format png /path/*.jpg    

Это преобразует все файлы .jpg в файлы .png и сохраняет преобразованные файлы в том же каталоге.

mv /path/*.png ~/Desktop/pic

Это переместит все .pngфайлы (преобразованные) в picкаталог, который находится на рабочем столе.


Должен ли я изменить каталог?
opu 웃

1
/path/*.jpgпредставляет каталог, в котором хранятся файлы .jpg.
Авинаш Радж

Я также попробовал эту команду после изменения каталога: mogrify -format png .jpgэто также работает хорошо.
opu 웃

Ответ ниже лучше , так как он учитывает ограничения, установленные для ARGV.
Эван Кэрролл,

Здесь есть отличное руководство: algissalys.com/how-to/… Также рассказывает об изменении размера изображения, что полезно, т.е. добавление -resize 800x меняет самую длинную сторону до 800 :)
Крейг Лэмби

42

Использование ImageMagick .

Сначала установите imagemagick:

sudo apt-get install imagemagick

Попробуйте сначала конвертировать только одно изображение:

convert image.jpg image.png

Теперь конвертируем все:

mogrify -format png *.jpg

РЕДАКТИРОВАТЬ

Вам также нужно разбить его на куски, которые будут соответствовать, чтобы не превысить предел того, сколько вы можете поместить в командную строку. Это должно работать лучше:

find -name '*.jpg' -print0 | xargs -0 -r mogrify -format png

-print0И -0используются для обработки пробелов в именах файлов и -rсредства не работают mogrify , если нет ничего , чтобы сделать.

Источник: https://stackoverflow.com/questions/1010261/running-a-batch-with-imagemagick

РЕДАКТИРОВАТЬ 2 Переключил PNG и JPG в соответствии с комментарием @ Glutanimate.

РЕДАКТИРОВАТЬ 3 Изменено png на jpg в последнем предложении.


Одно изображение успешно конвертировано. Но когда я использовал команду, чтобы преобразовать все ее mogrify.im6: unable to open image ``*.png': No such file or directory @ error/blob.c/OpenBlob/2638.``mogrify.im6: unable to open file ``*.png' @ error/png.c/ReadPNGImage/3667.
показы

cdСначала вам придется перейти в этот каталог. Если они находятся на рабочем столе, cd ~/Desktopсначала запустите, а затем попробуйте снова выполнить преобразование.
Парто

Я изменил каталог
opu 웃

@ Парто, думаю, так и должно быть mogrify -format png *.jpg. ОП спрашивает о конвертации jpg → png.
Glutanimate

не работал у меня с 14.04 @Parto
talha06

0

Я знаю, что прошло много времени с тех пор, как был задан этот вопрос, но есть одна замечательная программа, о которой я не упомянул, которую я часто использовал.

http://photobatch.wikidot.com/ также известный как Phatch. Он буквально преобразует что-либо из чего-либо в изображение. Некоторое время он не обновлялся, но теперь утверждает, что выпущен для Ubuntu 17.10. Попробуйте. Я уверен, что вы будете очень довольны этим.


2
Попытка получить это программное обеспечение, ссылка «скачать» на файл deb отсутствует по вышеуказанной ссылке, а версия «хранилища» в Ubuntu выдает мне эту ошибку: следуют подробные ошибки от диспетчера пакетов: apt транзакция вернула результат exit-fail Ubuntu v 18.10 может быть? Во всяком случае - мой опыт.
Крейг Лэмби
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.