我试图让图像的一部分模糊。最终我想模糊面孔,但我不能只是模糊一部分。我试图裁剪图像的一部分然后将其粘贴回原始图像。我能够裁剪它,但是当我去粘贴裁剪区域的图像时,我收到一个“AttributeError:'NoneType'对象没有属性'save'”
以下是我正在使用的代码:
import Image, ImageFilter
picture = Image.open("picture1.jpg")
#finds width and height of picture
width, height = picture.size
#crops the picture
box = (20, 20, width/2, height/2)
ic = picture.crop(box)
#blurs the cropped part of the picture
ic = ic.filter(ImageFilter.GaussianBlur(radius=20))
#pastes the image back
blurredPic = picture.paste(ic, box)
#saves the new image and the cropped image
blurredPic.save("BlurredPic.jpg")
ic.save("cropPic.jpg")
我真的很感激帮助。
答案 0 :(得分:4)
picture.paste(ic, box)
就地picture
变异并返回None
。
即
#blurs the cropped part of the picture
ic = ic.filter(ImageFilter.GaussianBlur(radius=20))
#pastes the image back
picture.paste(ic, box)
#saves the new image and the cropped image
picture.save("BlurredPic.jpg")
ic.save("cropPic.jpg")
答案 1 :(得分:0)
我不确定这是否是您正在使用的库,但我在此处找到了一些图像库示例:http://www.riisen.dk/dop/pil.html。看一下Transpose示例,它看起来就像粘贴函数一样。
当你调用picture.paste(ic,box)时,你正在做的是更新图片,而不是返回任何内容。因此,blurredPic的值为None,自然没有“save”属性。
我会将最后3行更改为:
picture.paste(ic, box)
#saves the new image and the cropped image
picture.save("BlurredPic.jpg")
ic.save("cropPic.jpg")
如果那不是正确的库,或者说没有解决问题,请告诉我。