Ответы:
Вы можете использовать mogrify инструмент ImageMagick
mogrify -формат jpg * .bmp
sudo apt install imagemagick
на Ubuntu, и вы можете установить качество, добавив-quality 100
Скорее всего, на 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 ${i} ${i%bmp}jpg; done
Смотрите man bash
подробности for
команды. ${i%bmp}
Часть означает , что строка «$ {я}» без «ВМР» подстроку в конце.
Существуют и другие операции для преобразования строки в «$ {i}». «$ i» - это сокращение от «$ {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
В моем ответе также совпадение "$ {i% bmp}" не удалось.
Но есть решение - 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, но это сделает работу.
ls
.