如何使用Python图像处理库创建位图

16

我在Python中有一个二维列表,并且想要根据数据制作图形图片。可能是一个n乘m的列网格,其中每个正方形根据我的二维列表中的值而是不同灰色。

但是,我似乎无法找到如何使用PIL创建图像的方法。这是我一直在尝试的一些东西:

def createImage():
    img = Image.new('L', (100,100), 'white')
    img.save('test.bmp')

    for i in range(0,15):
        for j in range(0,15):
            img.putpixel((i,j), (255,255,255))

然而,我收到一个错误提示,说需要一个整数(问题出现在putpixel所在的那一行)

1个回答

28

以下内容来自 http://en.wikibooks.org/wiki/Python_Imaging_Library/Editing_Pixels:

from PIL import Image

img = Image.new( 'RGB', (255,255), "black") # Create a new black image
pixels = img.load() # Create the pixel map
for i in range(img.size[0]):    # For every pixel:
    for j in range(img.size[1]):
        pixels[i,j] = (i, j, 100) # Set the colour accordingly

img.show()

img.size[0]和img.size[1]到底是什么?我不能在for循环中使用自己的范围吗?我收到了一个说需要整数的错误提示。 - DannyD
是的,如果您知道图像的大小,那么您可以这样做,以便不会超出数组范围。 - ghostbust555

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接