Re: PIL : How to write array to image ???

2009-10-06 Thread Scott David Daniels

Mart. wrote:

On Oct 5, 5:14 pm, Martin  wrote:

On Oct 4, 10:16 pm, "Mart."  wrote:






On Oct 4, 9:47 am, Martin  wrote:

On Oct 3, 11:56 pm, Peter Otten <__pete...@web.de> wrote:

Martin wrote:

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

The PIL seems to copy the array contents directly from memory without any
conversions or sanity check. In your example The float values determine the
gray value of 8 consecutive pixels.
If you want a[i,j] to become the color of the pixel (i, j) you have to use
an array with a memory layout that is compatible to the Image.
Here are a few examples:

import numpy
from PIL import Image
a = numpy.zeros((100, 100), numpy.uint8)
a[:50, :50] = a[50:, 50:] = 255
Image.fromarray(a).save("tmp1.png")
b = numpy.zeros((100, 100, 3), numpy.uint8)
b[:50, :50, :] = b[50:, 50:, :] = [255, 0, 0]
Image.fromarray(b).save("tmp2.png")
c = numpy.zeros((100, 100), numpy.uint32)
c[:50, :50] = c[50:, 50:] = 0xff808000
Image.fromarray(c, "RGBA").save("tmp3.png")

Peter

Thanks All - That helped a lot...
The working code ended with:
imga = np.zeros((imgL.shape[1],imgL.shape[0]),np.uint8)
for ro in range(imgL.shape[1]):
for co in range(imgL.shape[0]):
imga[ro,co] = imgL[ro,co]
Image.fromarray(imga).save('_a'+str(lev)+'.png')

Without knowing how big your image is (can't remember if you said!).
Perhaps rather than looping in the way you might in C for example, the
numpy where might be quicker if you have a big image. Just a
thought...
And a good thought too... 


I think what Martin is telling you is:

Look to numpy to continue working on the array first.

byte_store = imgL.astype(np.uint8)
Image.fromarray(byte_store).save('_a%s.png' % lev)

--Scott David Daniels
scott.dani...@acm.org
--
http://mail.python.org/mailman/listinfo/python-list


Re: PIL : How to write array to image ???

2009-10-05 Thread Mart.
On Oct 5, 5:14 pm, Martin  wrote:
> On Oct 4, 10:16 pm, "Mart."  wrote:
>
>
>
>
>
> > On Oct 4, 9:47 am, Martin  wrote:
>
> > > On Oct 3, 11:56 pm, Peter Otten <__pete...@web.de> wrote:
>
> > > > Martin wrote:
> > > > > 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')
>
> > > > The PIL seems to copy the array contents directly from memory without 
> > > > any
> > > > conversions or sanity check. In your example The float values determine 
> > > > the
> > > > gray value of 8 consecutive pixels.
>
> > > > If you want a[i,j] to become the color of the pixel (i, j) you have to 
> > > > use
> > > > an array with a memory layout that is compatible to the Image.
> > > > Here are a few examples:
>
> > > > >>> import numpy
> > > > >>> from PIL import Image
> > > > >>> a = numpy.zeros((100, 100), numpy.uint8)
> > > > >>> a[:50, :50] = a[50:, 50:] = 255
> > > > >>> Image.fromarray(a).save("tmp1.png")
> > > > >>> b = numpy.zeros((100, 100, 3), numpy.uint8)
> > > > >>> b[:50, :50, :] = b[50:, 50:, :] = [255, 0, 0]
> > > > >>> Image.fromarray(b).save("tmp2.png")
> > > > >>> c = numpy.zeros((100, 100), numpy.uint32)
> > > > >>> c[:50, :50] = c[50:, 50:] = 0xff808000
> > > > >>> Image.fromarray(c, "RGBA").save("tmp3.png")
>
> > > > Peter
>
> > > Thanks All - That helped a lot...
>
> > > The working code ended with:
>
> > >         imga = np.zeros((imgL.shape[1],imgL.shape[0]),np.uint8)
> > >         for ro in range(imgL.shape[1]):
> > >             for co in range(imgL.shape[0]):
> > >                 imga[ro,co] = imgL[ro,co]
> > >         Image.fromarray(imga).save('_a'+str(lev)+'.png')
>
> > Without knowing how big your image is (can't remember if you said!).
> > Perhaps rather than looping in the way you might in C for example, the
> > numpy where might be quicker if you have a big image. Just a
> > thought...
>
> And a good thought too... I use to teach ansi C at Univ. many ears
> ago, and it's still one of my favorits. But I prefere Python for this
> type of work. Python have a much faster develop time, is much easier
> to write (fewer linees, simpler syntax) and is much more 'hot' in
> these days. Finally my favorit GIS and RS applications support Python
> out-of-the-box.
>
> :-) Martin

I wasn't advocating doing it in c just that you could speed up your
program considerably by not looping and using some of the numpy array
options.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: PIL : How to write array to image ???

2009-10-05 Thread Martin
On Oct 4, 10:16 pm, "Mart."  wrote:
> On Oct 4, 9:47 am, Martin  wrote:
>
>
>
> > On Oct 3, 11:56 pm, Peter Otten <__pete...@web.de> wrote:
>
> > > Martin wrote:
> > > > 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')
>
> > > The PIL seems to copy the array contents directly from memory without any
> > > conversions or sanity check. In your example The float values determine 
> > > the
> > > gray value of 8 consecutive pixels.
>
> > > If you want a[i,j] to become the color of the pixel (i, j) you have to use
> > > an array with a memory layout that is compatible to the Image.
> > > Here are a few examples:
>
> > > >>> import numpy
> > > >>> from PIL import Image
> > > >>> a = numpy.zeros((100, 100), numpy.uint8)
> > > >>> a[:50, :50] = a[50:, 50:] = 255
> > > >>> Image.fromarray(a).save("tmp1.png")
> > > >>> b = numpy.zeros((100, 100, 3), numpy.uint8)
> > > >>> b[:50, :50, :] = b[50:, 50:, :] = [255, 0, 0]
> > > >>> Image.fromarray(b).save("tmp2.png")
> > > >>> c = numpy.zeros((100, 100), numpy.uint32)
> > > >>> c[:50, :50] = c[50:, 50:] = 0xff808000
> > > >>> Image.fromarray(c, "RGBA").save("tmp3.png")
>
> > > Peter
>
> > Thanks All - That helped a lot...
>
> > The working code ended with:
>
> >         imga = np.zeros((imgL.shape[1],imgL.shape[0]),np.uint8)
> >         for ro in range(imgL.shape[1]):
> >             for co in range(imgL.shape[0]):
> >                 imga[ro,co] = imgL[ro,co]
> >         Image.fromarray(imga).save('_a'+str(lev)+'.png')
>
> Without knowing how big your image is (can't remember if you said!).
> Perhaps rather than looping in the way you might in C for example, the
> numpy where might be quicker if you have a big image. Just a
> thought...

And a good thought too... I use to teach ansi C at Univ. many ears
ago, and it's still one of my favorits. But I prefere Python for this
type of work. Python have a much faster develop time, is much easier
to write (fewer linees, simpler syntax) and is much more 'hot' in
these days. Finally my favorit GIS and RS applications support Python
out-of-the-box.

:-) Martin
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: PIL : How to write array to image ???

2009-10-04 Thread Mart.
On Oct 4, 9:47 am, Martin  wrote:
> On Oct 3, 11:56 pm, Peter Otten <__pete...@web.de> wrote:
>
>
>
>
>
> > Martin wrote:
> > > 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')
>
> > The PIL seems to copy the array contents directly from memory without any
> > conversions or sanity check. In your example The float values determine the
> > gray value of 8 consecutive pixels.
>
> > If you want a[i,j] to become the color of the pixel (i, j) you have to use
> > an array with a memory layout that is compatible to the Image.
> > Here are a few examples:
>
> > >>> import numpy
> > >>> from PIL import Image
> > >>> a = numpy.zeros((100, 100), numpy.uint8)
> > >>> a[:50, :50] = a[50:, 50:] = 255
> > >>> Image.fromarray(a).save("tmp1.png")
> > >>> b = numpy.zeros((100, 100, 3), numpy.uint8)
> > >>> b[:50, :50, :] = b[50:, 50:, :] = [255, 0, 0]
> > >>> Image.fromarray(b).save("tmp2.png")
> > >>> c = numpy.zeros((100, 100), numpy.uint32)
> > >>> c[:50, :50] = c[50:, 50:] = 0xff808000
> > >>> Image.fromarray(c, "RGBA").save("tmp3.png")
>
> > Peter
>
> Thanks All - That helped a lot...
>
> The working code ended with:
>
>         imga = np.zeros((imgL.shape[1],imgL.shape[0]),np.uint8)
>         for ro in range(imgL.shape[1]):
>             for co in range(imgL.shape[0]):
>                 imga[ro,co] = imgL[ro,co]
>         Image.fromarray(imga).save('_a'+str(lev)+'.png')

Without knowing how big your image is (can't remember if you said!).
Perhaps rather than looping in the way you might in C for example, the
numpy where might be quicker if you have a big image. Just a
thought...

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: PIL : How to write array to image ???

2009-10-04 Thread Martin
On Oct 3, 11:56 pm, Peter Otten <__pete...@web.de> wrote:
> Martin wrote:
> > 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')
>
> The PIL seems to copy the array contents directly from memory without any
> conversions or sanity check. In your example The float values determine the
> gray value of 8 consecutive pixels.
>
> If you want a[i,j] to become the color of the pixel (i, j) you have to use
> an array with a memory layout that is compatible to the Image.
> Here are a few examples:
>
> >>> import numpy
> >>> from PIL import Image
> >>> a = numpy.zeros((100, 100), numpy.uint8)
> >>> a[:50, :50] = a[50:, 50:] = 255
> >>> Image.fromarray(a).save("tmp1.png")
> >>> b = numpy.zeros((100, 100, 3), numpy.uint8)
> >>> b[:50, :50, :] = b[50:, 50:, :] = [255, 0, 0]
> >>> Image.fromarray(b).save("tmp2.png")
> >>> c = numpy.zeros((100, 100), numpy.uint32)
> >>> c[:50, :50] = c[50:, 50:] = 0xff808000
> >>> Image.fromarray(c, "RGBA").save("tmp3.png")
>
> Peter

Thanks All - That helped a lot...

The working code ended with:


imga = np.zeros((imgL.shape[1],imgL.shape[0]),np.uint8)
for ro in range(imgL.shape[1]):
for co in range(imgL.shape[0]):
imga[ro,co] = imgL[ro,co]
Image.fromarray(imga).save('_a'+str(lev)+'.png')

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: PIL : How to write array to image ???

2009-10-03 Thread Peter Otten
Martin wrote:

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

The PIL seems to copy the array contents directly from memory without any 
conversions or sanity check. In your example The float values determine the 
gray value of 8 consecutive pixels.

If you want a[i,j] to become the color of the pixel (i, j) you have to use 
an array with a memory layout that is compatible to the Image.
Here are a few examples:

>>> import numpy
>>> from PIL import Image

>>> a = numpy.zeros((100, 100), numpy.uint8)
>>> a[:50, :50] = a[50:, 50:] = 255
>>> Image.fromarray(a).save("tmp1.png")

>>> b = numpy.zeros((100, 100, 3), numpy.uint8)
>>> b[:50, :50, :] = b[50:, 50:, :] = [255, 0, 0]
>>> Image.fromarray(b).save("tmp2.png")

>>> c = numpy.zeros((100, 100), numpy.uint32)
>>> c[:50, :50] = c[50:, 50:] = 0xff808000
>>> Image.fromarray(c, "RGBA").save("tmp3.png")

Peter

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: PIL : How to write array to image ???

2009-10-03 Thread Robert Kern

Martin wrote:

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


You are telling it the wrong mode information. If you want an RGB image, you 
need to give it a uint8 array with shape (height, width, 3). Exactly what are 
you trying to do? I can't infer that from your code.


--
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
 that is made terrible by our own mad attempt to interpret it as though it had
 an underlying truth."
  -- Umberto Eco

--
http://mail.python.org/mailman/listinfo/python-list


PIL : How to write array to image ???

2009-10-03 Thread Martin
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')
-- 
http://mail.python.org/mailman/listinfo/python-list