Необходимо уменьшить изображение, добавив белую рамку, но сохранив пропорции изображения. Как это сделать в ImageMagick? Я попытался добавить границу с параметрами -bordercolor White -border 100x100 image.jpg но это меняет соотношение сторон изображения (ширина px / высота px изменена, но нужно предварительно сохранить ее).

1 ответ1

0

Если вы хотите добавить только белую рамку и сохранить соотношение сторон, вы можете использовать следующие команды:

newsize=$(identify -format "%[fx:w+100]x%[fx:h+100]" rose:)
convert rose: \( -clone 0 -resize "$newsize" -fx "white" \) \
    -reverse -gravity Center -composite newrose.png

Программа использует два изображения, как список или стек:

rose: это первое изображение;

\( -clone 0 -resize "$newsize" -fx "white" \) - второе изображение;

-clone 0 делает копию первого изображения;

-resize "$newsize" изменяет размер до желаемого размера;

-fx "white" заполняет все второе изображение белым цветом;

-reverse обмен изображениями;

-gravity Center выравнивает изображения по центру;

-composite перекрывает изображения.

rose:

Роза: (70x46)

\( -clone 0 -resize "$newsize" -fx "white" \)

фон (170x112)

newrose.png

newrose.png (170x112)

70 / 46 = 1.5217
170 / 112 = 1.5178

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .