python - 不创建图像

时间:2011-10-07 13:49:02

标签: python python-imaging-library

我正在尝试导入图像,然后操纵它的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)。它会产生一个重复的图像。

那么如何修改图像?

谢谢,

1 个答案:

答案 0 :(得分:3)

for循环不会替换每个像素的内容,它只是创建一个新实例然后将其抛弃。您应该创建一个新数组,例如:

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