Вы можете использовать инструмент MoMrify от ImageMagick
mogrify -format jpg * .bmp
Кто-то прислал мне кучу файлов BMP, и они нужны мне в формате JPEG. Я мог бы конвертировать их один за другим, используя GIMP, но я бы предпочел сделать все это за один раз. У меня есть Ubuntu.
Вы можете использовать инструмент MoMrify от ImageMagick
mogrify -format jpg * .bmp
Скорее всего, на Ubuntu установлена программа ImageMagick .
Что можно сделать ,
convert filename.bmp filename.jpg
Обновить:
mogrify
(Отвечает hyperslug
и перенаправлены cjm
) также является хорошим вариантом.
Используйте программу mogrify для изменения размера изображения, размытия, обрезки, удаления пятен, сглаживания, рисования, переворачивания, объединения, повторной выборки и многого другого.
Этот инструмент похож на преобразование, за исключением того, что исходный файл изображения перезаписывается
(если вы не изменяете суффикс файла с помощью-format
опции) с любыми изменениями, которые вы запрашиваете.
Позвольте мне немного изменить ответ лосося:
for i in `ls *.bmp`; do convert $i $i.jpg; done
Выше работает, но генерирует файлы с именем "bmp.jpg". Вы можете получить файлы .jpg с помощью этой команды:
for i in *.bmp; do convert $ $jpg; done
Смотрите man bash
подробности for
команды. $
Часть означает, что строка «$ » без «BMP» подстроки в конце.
Существуют и другие операции для преобразования строки в «$ ». «$ i» - это сокращение от «$ ». ls *.bmp
Часть в salmonmoose ответа означает «выполнить ls *.bmp
, то для i
части присваивает каждую строку, разделенные пробелами до i
». То же самое достигается благодаря тому, *.bmp
что оно соответствует всем именам файлов в каталоге.
Недостаток в том, что for
- если в именах файлов в вашем каталоге есть пробелы, например «wedding picture 1.bmp», он будет назначен 3 раза в i
var, выполняя следующие команды:
convert wedding wedding.jpg convert picture picture.jpg convert 1.bmp 1.bmp.jpg
В моем ответе также совпадение "$ " не удалось.
Но есть решение - вы можете использовать find
команду вместо этого. Смотрите man find
подробности. Вы должны напечатать что-то вроде следующего (пожалуйста, проверьте синтаксис с man-страницей, прежде чем пытаться это сделать):
find -name *.bmp -type f -exec convert '{}' '{}'.jpg \;
(Я не очень уверен в названии части, и у меня есть некоторые сомнения в -exec
части, см. В man find
первую очередь)
Если вы хотите объединить все изображения в один файл .jpg, вы можете объединить их с другим фильтром, как указано в первом ответе.
for i in `ls *.bmp`; do convert $i $i.jpg; done
Да, это создаст кучу файлов с именем filename.bmp.jpg, но это сделает работу.