LINUX.ORG.RU

Как пережать большие изображения

 


0

1

Чем можно пережать все графические файлы в папке, превышающие размером один мегабайт? С файлами самими по себе все понятно - ImageMagick. А вот как заставить этот ImageMagick скушать все большие картинки, пропуская при этом маленькие, я чего-то не нашел.


А в нем этого и нет. Это есть в скриптовых языках, которые для того и предназначены. Добавь к своему запросу в гугле «как сделать в bash».

anonymous
()

В ситуации, если нужно просто пожать изображения до определённых размеров (геометрии), игнорируя меньшие изображения, достаточно просто mogrify:

mogrify -resize "500x500>" *.png

Если нужно сравнивать размер файлов, можно воспользоваться find и передать результаты в mogrify, например так:

find /path/to/dir -type f -size +1M -exec mogrify -resize 50% \{\} \;

Если нужна более серьёзная обработка, можно передать найденные файлы в while:

find /path/to/dir -type f -size +1M |
while read filename
do
    geometry=$( identify -format "%w %h" $filename )
    ......
done
grazor ★★
()
Ответ на: комментарий от grazor

find /path/to/dir -type f -size +1M -exec mogrify -resize 50% \{\} \;

То что надо, спасибо.

Renji
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.