我想用python pillow模糊图像中的一个矩形(圆角)。我已经找到了一种方法,只模糊图片的某一部分。
img = Image.open('assets/images/image.png')
x, y = 300, 1600
cropped_img = img.crop((x, y, 1000, 2600))
blurred_img = cropped_img.filter(ImageFilter.GaussianBlur(20))
img.paste(blurred_img, (x, y))
img.save('assets/images/new.png')
img.show()
此外,我发现了一个方法来添加圆角的矩形(Transparency issues drawing a rectangle with rounded corners)
def round_corner(radius):
corner = Image.new('RGBA', (radius, radius), (0, 0, 0, 0))
draw = ImageDraw.Draw(corner)
draw.pieslice((0, 0, radius * 2, radius * 2), 180, 270)
return corner
def round_rectangle(rectangle, radius):
corner = round_corner(radius)
rectangle.paste(corner, (0, 0))
rectangle.paste(corner.rotate(90), (0, rectangle.size[1] - radius))
rectangle.paste(corner.rotate(180), (rectangle.size[0] - radius, rectangle.size[1] - radius))
rectangle.paste(corner.rotate(270), (rectangle.size[0] - radius, 0))
return rectangle
不幸的是,我找不到一种方法来合并这两个源代码,使他们的工作。
我的示例图像:
1条答案
按热度按时间afdcj2ne1#
你需要做的,本质上是为
Image.paste()
创建一个蒙版,只粘贴模糊图像中位于圆角矩形内的部分。面罩:
将蒙版应用到图像:
我改变了一些维度和路径。你的代码缺少导入,我把它修改成minimal verifyable complete example。