Відповіді:
Ви можете скористатись інструментом mogrify ImageMagick
mogrify -format 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}
Частина означає , що рядок «$ {я}» без «BMP» підрядка в кінці.
Є й інші операції з перетворення рядка в "$ {i}". "$ i" - це скорочення для "$ {i}". ls *.bmp
Частина в salmonmoose відповіді означає «виконати ls *.bmp
, то для i
частини привласнює кожен рядок , розділені пробілами до i
». Це досягається тим, *.bmp
що він відповідає всім іменам файлів у каталозі.
Існує недолік з for
- якщо у файлах у вашому каталозі пробіли у назві, наприклад "весільна картинка 1.bmp", він буде присвоєний вару 3 разів i
, виконуючи ці команди:
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
.