Imagemagick конвертировать урожай и изменять размер


У меня более 1000 изображений с разными разрешениями (например, 1234x2122, 4400x5212 и т.д.), И я хочу преобразовать все их в фиксированный размер 100x100.

  1. сначала мне нужно изменить размеры изображений, сохраняя пропорции, и получить 100xA или Ax100, где A> 100 (это зависит от ширины и высоты изображения, для ширины изображения> высота и для некоторых изображений height> width).

  2. Обрезайте это изображение до 100x100 от центра

Есть ли простая команда преобразования, которую я могу использовать для всех моих изображений?

Ответ 1

Вы должны использовать модификатор геометрии области заполнения (^) в операции -resize для унификации масштаба. Для обрезки центра -extent с -gravity Center будет работать.

convert input.jpg -resize 100x100^ \
                  -gravity Center  \
                  -extent 100x100  \
        output.jpg

Обновить

Как отметил Марк Сетчелл в комментариях, утилиту mogrify можно использовать для пакетного преобразования элементов.

mogrify -path ./path/to/write/results/ \
        -resize 100x100^ \
        -gravity Center  \
        -extent 100x100  \
        ./path/to/source/files/*

reminderНапоминание: Mogrify перезапишет исходный файл результирующим изображением (изображениями), если вы не установите параметр -path.