Как создать границу изображения? - PullRequest
1 голос
/ 11 апреля 2019

Я хочу создать что-то вроде рамки вокруг изображения с помощью ImageMagick.Я хочу, чтобы граница была связана с исходным размером изображения.

Пример:

  • Граница 5% на изображении 1000x100px должна дать мне изображение 1050x105px
  • Граница 10% на изображении 500x400px должна дать мне изображение 550x440px

Так что для белой границы 5% я получил этот код после множества проб и ошибок.Но это кажется слишком сложным:

convert infile.png \
    null: \
    \( -clone 0 -resize 105% -fill \#fff -colorize 100% \) \
    -swap 0,2 -geometry +0+0 -gravity center -layers composite \
    outfile.png

Как я могу упростить это?Чего мне не хватает?

ПРИМЕЧАНИЕ. Я не хочу указывать статическую ширину границы, поскольку у меня есть несколько входных изображений разных размеров.

Ответы [ 2 ]

2 голосов
/ 11 апреля 2019

Вы можете использовать -extent следующим образом:

convert -size 1000x100 xc:blue -gravity center -background red -extent 105%x105% result.png

enter image description here

Чек

identify result.png
result.png PNG 1050x105 1050x105+0+0 8-bit sRGB 2c 350B 0.000u 0:00.000

Используйте любое из ваших собственных изображений вместо -size 1000x100 xc:blue

2 голосов
/ 11 апреля 2019

С помощью ImageMagick вы можете указать размер границы в процентах от ширины и высоты. Запустите такую ​​команду на изображении размером 500x400, чтобы увидеть, как она работает ...

convert input.png -border 5x10% result.png

Это должно создать выходное изображение с размерами 550x480. Имейте в виду, что указанный вами процент добавляется к каждому краю, поэтому граница 5% сделает изображение шириной 500 пикселей шириной 550 пикселей.

Чтобы добавить в общей сложности 10% к ширине и высоте, вы должны использовать команду, подобную этой ...

convert input.png -border 5% result.png
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...