DannyD
DannyD

Reputation: 2901

how can I use the python imaging library to create a bitmap

I have a 2d list in python, and I want to make a graphical pic of the data. Maybe a n by m column grid where each square is a different color of grey depending on the value in my 2d list.

However, I can't seem to figure out how to create images using PIL. This is some of the stuff I've been messing with:

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))

However, I'm getting an error saying that an integer is required (problem on the line with the putpixel)

Upvotes: 16

Views: 58878

Answers (1)

ghostbust555
ghostbust555

Reputation: 2049

This is from 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()

Upvotes: 29

Related Questions