ImageMagik — как сделать квадратные изображения?

Как с помощью mogrify сделать все изображения квадратными, а если они большого размера, то уменьшить до 1000х1000 пикселей? (а если они меньше - то не увеличивать)
Сейчас делаю так: mogrify -geometry 1000x1000 -background white -extent 1000x1000 -gravity center *
При этом маленькие картинки растягиваются до 1000х1000.
Еще хотелось бы за один запуск обрабатывать и jpg и png, но в png надо сохранять прозрачность, а в jpg делайть заливку белым. Если указать -background none, то в png все нормально, а в jpg заливает черным.
  • Вопрос задан
  • 422 просмотра
Пригласить эксперта
Ответы на вопрос 1
Moskus
@Moskus
Вообще, я бы это делал через convert -resize. Соответственно, у -geometry есть суффиксы < и >, применяемые в виде 1000x1000>, например. Это говорит IM "не увеличивать все, что меньше". Опции описаны здесь www.imagemagick.org/script/command-line-processing...
А еще вы забыли после -background white добавить -compose Copy.
Полный код будет выглядеть так (некоторые ОС потребуют экранировать символ >):
convert -resize -geometry 1000x1000> -background white -compose Copy -gravity center -extent 1000x1000

Стоит сделать в два прохода для PNG и JPEG отдельно, дописав в команду для JPEG настройки -quality и -sampling-factor - в этом нет ничего плохого. Не забудьте, также, -strip для оптимизации, если это требуется.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы