如何创建图像边框?
How to create an image border?
我想用 ImageMagick 在图像周围创建类似边框的东西。我希望边框与图片的原始大小相关。
例如:
- 1000x100 像素图像上的 5% 边框应该给我一张 1050x105 像素的图像
- 500x400px 图像上的 10% 边框应该给我 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
我怎样才能简化这个?我错过了什么?
注意:我不想指定边框的静态宽度,因为我有多个不同尺寸的输入图像。
使用 ImageMagick,您可以将边框的大小指定为宽度和高度的百分比。 运行 在 500x400 图像上执行这样的命令以查看其工作原理...
convert input.png -border 5x10% result.png
这应该会生成尺寸为 550x480 的输出图像。请记住,您指定的百分比会添加到每个边缘,因此 5% 的边框将使 500 像素宽的图像变为 550 像素宽。
要将宽度和高度的总和增加 10%,您可以使用这样的命令...
convert input.png -border 5% result.png
您可以这样使用 -extent
:
convert -size 1000x100 xc:blue -gravity center -background red -extent 105%x105% result.png
检查
identify result.png
result.png PNG 1050x105 1050x105+0+0 8-bit sRGB 2c 350B 0.000u 0:00.000
使用您自己的任何图片代替 -size 1000x100 xc:blue
我想用 ImageMagick 在图像周围创建类似边框的东西。我希望边框与图片的原始大小相关。
例如:
- 1000x100 像素图像上的 5% 边框应该给我一张 1050x105 像素的图像
- 500x400px 图像上的 10% 边框应该给我 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
我怎样才能简化这个?我错过了什么?
注意:我不想指定边框的静态宽度,因为我有多个不同尺寸的输入图像。
使用 ImageMagick,您可以将边框的大小指定为宽度和高度的百分比。 运行 在 500x400 图像上执行这样的命令以查看其工作原理...
convert input.png -border 5x10% result.png
这应该会生成尺寸为 550x480 的输出图像。请记住,您指定的百分比会添加到每个边缘,因此 5% 的边框将使 500 像素宽的图像变为 550 像素宽。
要将宽度和高度的总和增加 10%,您可以使用这样的命令...
convert input.png -border 5% result.png
您可以这样使用 -extent
:
convert -size 1000x100 xc:blue -gravity center -background red -extent 105%x105% result.png
检查
identify result.png
result.png PNG 1050x105 1050x105+0+0 8-bit sRGB 2c 350B 0.000u 0:00.000
使用您自己的任何图片代替 -size 1000x100 xc:blue