Необходимо уменьшить изображение, добавив белую рамку, но сохранив пропорции изображения. Как это сделать в ImageMagick? Я попытался добавить границу с параметрами -bordercolor White -border 100x100 image.jpg но это меняет соотношение сторон изображения (ширина px / высота px изменена, но нужно предварительно сохранить ее).
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" \)
newrose.png
70 / 46 = 1.5217
170 / 112 = 1.5178

(70x46)
