Уменьшите изображение так, чтобы оно заполнило квадрат размером 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
Вы можете найти больше примеров изменения размера и масштабирования здесь: "Изменение размера, чтобы заполнить данное пространство" кажется наиболее подходящим для вашей проблемы.