PIL : How to write array to image ???
Martin
Martin at Hvidberg.net
Sat Oct 3 13:30:13 EDT 2009
Dear group
I'm trying to use PIL to write an array (a NumPy array to be exact) to
an image.
Peace of cake, but it comes out looking strange.
I use the below mini code, that I wrote for the purpose. The print of
a looks like expected:
[[ 200. 200. 200. ..., 0. 0. 0.]
[ 200. 200. 200. ..., 0. 0. 0.]
[ 200. 200. 200. ..., 0. 0. 0.]
...,
[ 0. 0. 0. ..., 200. 200. 200.]
[ 0. 0. 0. ..., 200. 200. 200.]
[ 0. 0. 0. ..., 200. 200. 200.]]
But the image looks nothing like that.
Please see the images on:
http://hvidberg.net/Martin/temp/quat_col.png
http://hvidberg.net/Martin/temp/quat_bw.png
or run the code to see them locally.
Please – what do I do wrong in the PIL part ???
:-? Martin
import numpy as np
from PIL import Image
from PIL import ImageOps
maxcol = 100
maxrow = 100
a = np.zeros((maxcol,maxrow),float)
for i in range(maxcol):
for j in range(maxrow):
if (i<(maxcol/2) and j<(maxrow/2)) or (i>=(maxcol/2) and j>=
(maxrow/2)):
a[i,j] = 200
else:
a[i,j] = 0
print a
pilImage = Image.fromarray(a,'RGB')
pilImage.save('quat_col.png')
pilImage = ImageOps.grayscale(pilImage)
pilImage.save('quat_bw.png')
More information about the Python-list
mailing list