
结合帖子中的需求,对局部进行高斯模糊,所以还需要结合使用 crop 和 paste 方法实现局部使用滤镜。
代码如下:
#-*- coding: utf-8 -*-
from PIL import Image, ImageFilter
class MyGaussianBlur(ImageFilter.Filter):
name = "GaussianBlur"
def __init__(self, radius=2, bounds=None):
self.radius = radius
self.bounds = bounds
def filter(self, image):
if self.bounds:
clips = image.crop(self.bounds).gaussian_blur(self.radius)
image.paste(clips, self.bounds)
return image
else:
return image.gaussian_blur(self.radius)
bounds = (150, 130, 280, 230)
image = Image.open('source.jpg')
image = image.filter(MyGaussianBlur(radius=29, bounds=bounds))
image.show()
可以看下效果:

