Конвертируйте (сжимайте) изображения JPEG с помощью mogrify, сохраняя исходные файлы в том же каталоге
Я пытаюсь преобразовать (сжать) кучу изображений JPEG с помощью команды imagemagick mogrify, сохраняя исходный файл в той же директории. Я набираю в окне терминала: mogrify -quality 25% *.JPEG con%002d.JPEG, затем я получаю ошибку: mogrify: невозможно открыть изображение `con%002d.JPEG': такого файла или каталога @ error нет /blob.c/OpenBlob/2712. Как я могу решить эту ошибку? Я запустил: определить -бербос * | grep Формат и результат для всех файлов: Формат: JPEG (формат JFIF Объединенной группы экспертов по фотографии) exif: уменьшенное изображение:JPEGInterchangeFormat: 10718 exif: уменьшенное изображение:JPEGInterchangeFormatLength: 8223
У меня система Xubuntu 16.04, спасибо за помощь, Влади.
2 ответа
По справочной странице mogrify
не принимает параметр вывода, он просто перезаписывает входной файл, если формат не изменен (то же имя используется вплоть до расширения файла).
Попробуйте это используя convert
вместо.
#!/bin/bash
n=1
for i in *.JPEG; do
convert "$i" -format jpg -quality '25%' $(printf con-%03d.JPEG $n)
n=$((n+1))
done
JPEG против JPG
Я дважды замаскировал одно и то же изображение
$ mogrify -format JPEG b.jpg
$ mogrify -format jpg b.jpg
затем
$ diff -u <(identify -verbose b.jpg ) <(identify -verbose b.JPEG)
--- /dev/fd/63 2018-09-29 14:42:27.506462707 -0400
+++ /dev/fd/62 2018-09-29 14:42:27.510462929 -0400
@@ -1 +1 @@
-Image: b.jpg
+Image: b.JPEG
@@ -71,2 +71,2 @@
- date:create: 2018-09-29T14:37:11-04:00
- date:modify: 2018-09-29T14:37:11-04:00
+ date:create: 2018-09-29T14:37:03-04:00
+ date:modify: 2018-09-29T14:37:03-04:00
@@ -77 +77 @@
- filename: b.jpg
+ filename: b.JPEG
использование -write
mogrify -set filename:name '%t_q%Q' -quality 30 -write '%[filename:name].jpg' *.jpg
Приведенная выше команда запишет преобразованное изображение в новое имя: преобразование name.jpg в name_q30.jpg, name1.jpg в name1_q30.jpg. Храните ваши старые файлы в безопасности.
Другие параметры метаданных по процентам экранирования см. В документации.