@Unicom

Консольная команда для выборки картинок по их разрешению. Как?

В общем задача такая. На диске несколько миллионов картинок распиханных по разным папкам. Я хочу пакетно взять все это дело и пережать под одно качество и одинаковый dpi.

Как сделать это с одной картинкой, примерно понятно:
mogrify -quality 70 -density 72
а как сделать выборку картинок из всех папок/подпапок, разрешением только до 1024 по большей стороне одной строчкой?

Нужных аргументов к команде find найти не удалось, и развить конструкцию:
find /input/ -iname '*.jpg' -print0
не получается.

Сразу поясню, почему необходимо выборку делать с размером меньшим 1024? Потому, что, выборку по картинкам с большим размером я уже сделал и привел все к одному виду командой:
find /input/ -iname '*.*' -print0 | xargs -0 mogrify -resize '1024x1024>' -quality 70 -density 72

Эта пакетная обработка уже позаботилась о разрешении больших картинок, приведя все к одному разрешению и качеству. К сожалению mogrify -resize '1024x1024>' годится только для выборки бОльших размеров. Чтобы найти все малые размеры и не менять их разрешение (ну не экстраполировать же в самом деле), а просто поджать этот метод не годится (вроде бы).
  • Вопрос задан
  • 178 просмотров
Пригласить эксперта
Ответы на вопрос 3
sotvm
@sotvm
Умный поймёт, а дураку и так всё равно.
найдя интересующие изображения (по маске расположение/расширение/вес),
перенаправьте | утилитам/плагинам фоторедакторов,они уже прочитают атрибуты изображений.
вам так важно это сделать в консоли?
в графическом варианте проще/нагляднее ,тот же xnview c этим справится на ура,
или почитать маны для консольного варианта
Ответ написан
Moskus
@Moskus
Используйте команду identify с шаблоном вывода для создания базы изображений (текстового файла, через перенаправление), потом пройдите по этой базе циклом.
Ответ написан
shambler81
@shambler81 Куратор тега Linux
как вам такой вариант ?
s.arboreus.com/2006/11/bash.html
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы