[Image-SIG] question and bug?

Nick Bower nick@nickbower.com
Thu, 07 Dec 2000 01:57:02 GMT


> of an Image (aside from saving it to a file).  I've read the doc, but =

maybe I
> missed it.  How can I just manipulate pixel values directly, one by on=
e?

as another poster said, you could use numeric python to manipulate=20
individual array elements, then when you're ready and done with all the =

calculations, throw the entire thing into an image.  for a single band=20
image "im":

data =3D resize(array(im.getdata(), typecode=3DInt),(im.size[1],im.size[=
0]))

...do stuff to data...

im2 =3D Image.new('L',data.shape[1],data.shape[0])
im2.putdata(data.flat)

where data is the 2D array.

If you really want to do it all in PIL on a pixel by pixel basis, from=20
the PIL documentation:

"putpixel putpixel(xy, colour).

Modifies the pixel at the given position. The colour is given as a singl=
e=20
numerical value for single-band images, and a tuple for multi-band=20
images. For more extensive changes, use paste or the ImageDraw module=20
instead."


nick