Уменьшите изображение так, чтобы оно заполнило квадрат размером 100x100

Я хочу создать миниатюры для всех изображений в папке. Я также хочу, чтобы изображения помещались в квадрат размером 100x100 пикселей.

Таким образом, после уменьшения изображения, в то время как меньшая сторона должна быть 100 пикселей, большая сторона должна быть обрезана, чтобы сделать ее равной 100.

С ImageMagick я попробовал:

for i in $(ls *.jpg); do convert -scale 100 $i th-$i; done

Это работает, но для примера изображения 1000x800, уменьшенное изображение имеет размер 100x80 вместо 100x100.

2 ответа

Следующий метод может быть полезен:

for i in *.jpg
do
convert "$i" -resize 100x100 -background white -compose Copy \
-gravity center -extent 100x100 "${i%.jpg}_thumb.jpg"
done

Вы должны изменить цвет фона в соответствии с цветом фона вашего файлового менеджера...

Попробуй это:

for i in $(ls *.jpg); do convert -resize 100x100^ -gravity center -crop 100x100+0+0 $i th-$i; done

Вы можете найти больше примеров изменения размера и масштабирования здесь: "Изменение размера, чтобы заполнить данное пространство" кажется наиболее подходящим для вашей проблемы.

Другие вопросы по тегам