Josh Hunt Josh Hunt - 6 months ago 11
Python Question

How can I read the RGB value of a given pixel in Python?

If I open an image with

open("image.jpg")
, how can I get the RGB values of a pixel, if I have the coordinates of the pixel?

Then how can I do the reverse of this? Starting with a blank graphic, 'write' a pixel with a certain RGB value?

It would be so much better if I didn't have to download any additional libraries.

Answer

It's probably best to use the Python Image Library to do this which I'm afraid is a separate download.

The easiest way to do what you want is via the load() method on the Image object which returns a pixel access object which you can manipulate like an array:

from PIL import Image
im = Image.open("dead_parrot.jpg") #Can be many different formats.
pix = im.load()
print im.size #Get the width and hight of the image for iterating over
print pix[x,y] #Get the RGBA Value of the a pixel of an image
pix[x,y] = value # Set the RGBA Value of the image (tuple)

Alternatively, look at ImageDraw which gives a much richer API for creating images.