在Python中应用图像装饰(边框)(以编程方式)

2024-09-27 07:18:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找一种在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。


Tags: 方法图像imageimportfooopen边框jpg
3条回答

您可以使用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 
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将有一个width像素边框color

如果您希望每边有不同的彩色边框,可以用重复的.line调用替换.rectangle

如果希望边框不覆盖现有图像的任何部分,请使用此边框而不是foo.copy()

foo2 = Image.new(foo.mode, (foo.size[0] + 2*width, foo.size[1] + 2*width))
foo2.paste(foo, (width, width))

看看PIL中的ImageOps模块。

import Image
import ImageOps

x = Image.open('test.png')
y = ImageOps.expand(x,border=5,fill='red')
y.save('test2.png')

相关问题 更多 >

    热门问题