В общем задача такая. На диске несколько миллионов картинок распиханных по разным папкам. Я хочу пакетно взять все это дело и пережать под одно качество и одинаковый 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>' годится только для выборки бОльших размеров. Чтобы найти все малые размеры и не менять их разрешение (ну не экстраполировать же в самом деле), а просто поджать этот метод не годится (вроде бы).