2011-10-07 105 views
0

我想导入图像,然后操纵其RGB颜色。 这就是我的了:蟒蛇 - 不创建图像

from PIL import Image 
image = Image.open('grapes.jpg') 
pixels = list(image.getdata()) 

for pixel in pixels: 
    pixel = (pixel[0] - 50, pixel[1] , pixel[2]) 

image.putdata(pixel) 
image.save('grapes_modified.jpg') 

,你可以看到,我试图减少红色通道。这不起作用。它会生成导入图像的精确副本。即使我在哪里做这样的事情:pixel = (0,0,0)。它会产生一个重复的图像。

那么我该如何修改图片?

感谢,

回答

3

的用于循环不替代每个像素的内容,它只是创建一个新的实例,然后扔它拿走。您应该创建一个新阵列,例如:

newdata = [ (pixel[0] - 50, pixel[1] , pixel[2]) for pixel in pixels ]