我正在寻找一种在python中创建边框的方法。我们可以导入Python中的任何库来创建边框。
请注意,我不想使用任何图像蒙版来创建此效果(例如,我不想使用任何图像编辑软件包,如GIMP来创建边框图像蒙版)。
以下是我要找的内容:
import fooImageBorders
import Image
foo = Image.open("someImage.jpg")
foo2 = fooImageBorders.bevel(foo, color = black)
...我可以编写自己的方法来添加边框..但如果已经有类似这样的东西有一套全面的边框选项,我想利用它。
我查看了PIL文档,找不到这样做的方法。我有windows xp,如果你没有cygwin,似乎没有办法为Python 2.6安装PythonMagick。
谢谢!
答案 0 :(得分:11)
查看PIL中的ImageOps模块。
import Image
import ImageOps
x = Image.open('test.png')
y = ImageOps.expand(x,border=5,fill='red')
y.save('test2.png')
答案 1 :(得分:2)
您可以使用PythonMagick module。该模块的文档是here (Magic ++ documentation)
示例:要为图像添加红色2像素边框,您需要以下代码。
from PythonMagick import Image
i = Image('example.jpg') # reades image and creates an image instance
i.borderColor("#ff0000") # sets border paint color to red
i.border("2x2") # paints a 2 pixel border
i.write("out.jpg")
# writes the image to a file
答案 2 :(得分:1)
foo2 = foo.copy()
draw = ImageDraw.Draw(foo2)
for i in range(width):
draw.rectangle([i, i, foo2.size[0]-i-1, foo2.size[1]-i-1], outline = color)
foo2
的{{1}}像素边框为width
。
如果您希望每侧都有不同颜色的边框,则可以使用重复的color
来电替换.rectangle
。
如果您希望边框不覆盖现有图像的任何部分,请使用此代替.line
。
foo.copy()