Необходимо уменьшить изображение, добавив белую рамку, но сохранив пропорции изображения. Как это сделать в 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