DZone Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

Snippets has posted 5883 posts at DZone. View Full User Profile

Get Pixel Colors Of An Image

09.04.2005
| 22581 views |
  • submit to reddit
        Pys60 now has a decent Canvas and Image class.
We can draw many shapes and color them.
However, one important feature is missing, ie. getpixel().
So, you can only 'write' but not 'read' from graphics.

To get around this problem, I write a small library that
add 'getpixel' to the Image class.
Now, you can call im.getpixel(x,y) and get an (R,G,B) tuple.
# some setup
from graphics import *
im = screenshot()  # sample image

# http://larndham.net/service/pys60/getpixel.py
import getpixel
getpixel.enable(im)  # magically give Image.getpixel()
r, g, b = im.getpixel(0,0)  # top left corner
print 'Red: %s, Green:%s, Blue:%s' % (r,g,b)
Now you can do some easy image processing with getpixel.

Implementation note
===================
- This is a pure python module
- It saves an image as an uncompressed PNG file
- It reads pixel data from the file and attach it to the image.
- You need to call enable() every time you change the image.    

Comments

Snippets Manager replied on Thu, 2007/10/25 - 5:43am

hi, thanks for the above code and getpixel.py file but i m getting a few problems like 1) from graphics import * ImportError: No module named graphics 2) r, g, b = im.getpixel(0,0) # top left corner TypeError: getpixel() takes exactly 2 arguments (3 given) Is this normal ?? Thanks Ravi