如何使用RGB元组列表在PIL中创建图像?

时间:2012-08-21 20:55:31

标签: python python-imaging-library

假设我有一个像素列表(表示为具有3个RGB值的元组),其列表看起来像list(im.getdata()),如下所示:

[(0,0,0),(255,255,255),(38,29,58)...]

如何使用此格式使用RGB值(每个元组对应一个像素)创建新图像?

感谢您的帮助。

3 个答案:

答案 0 :(得分:49)

你可以这样做:

list_of_pixels = list(im.getdata())
# Do something to the pixels...
im2 = Image.new(im.mode, im.size)
im2.putdata(list_of_pixels)

答案 1 :(得分:11)

您也可以使用describe

scipy

给出

enter image description here

答案 2 :(得分:1)

这是一个完整的示例,因为我一开始并没有掌握窍门。

from PIL import Image

img = Image.new('RGB', [500,500], 255)
data = img.load()

for x in range(img.size[0]):
    for y in range(img.size[1]):
        data[x,y] = (
            x % 255,
            y % 255,
            (x**2-y**2) % 255,
        )

img.save('image.png')

output

如果仅在寻找灰度,可以先执行Image.new('L', [500,500], 255)然后执行data[x,y] = <your value between 0 and 255>