help for conversion of NUMARRAY to PIL object

A

A. L.

hi, everybody here,

I am a newbie to python. I encounter a problem that how to convert
an array of numarray to pil object. For example, the data in an image
is extracted using Image.getdata, then the data are converted into an
array in numarray. But when the array is needed to convert to the pil
object, I lose my mind. Could somebody here provide some solutions to
this problem? (In other words, all I need is the interface between
reading/writing image data and NUMARRAY.)

Thanks in advance.
 
R

Robert Kern

A. L. said:
hi, everybody here,

I am a newbie to python. I encounter a problem that how to convert
an array of numarray to pil object. For example, the data in an image
is extracted using Image.getdata, then the data are converted into an
array in numarray. But when the array is needed to convert to the pil
object, I lose my mind. Could somebody here provide some solutions to
this problem? (In other words, all I need is the interface between
reading/writing image data and NUMARRAY.)

In [11]: from numarray import *

In [12]: import Image

In [13]: a = zeros((256,256, 4), UInt8)

In [14]: img = Image.frombuffer('RGBA', (256,256), a)

--
Robert Kern
(e-mail address removed)

"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter
 
A

A. L.

Thanks. But some problems remain.

I have known using Image.tostring/fromstring and
numarray.tostring/fromstring can do the job. But when confronting
multi-spectral images, e.g., RGB color images, I don't know how to do
it. Could you give some advices on that?

You wrote "In [14]: img = Image.frombuffer('RGBA', (256,256), a) ", but
it seems that "a" cannot work in "frombuffer".
 
R

Robert Kern

A. L. said:
Thanks. But some problems remain.

I have known using Image.tostring/fromstring and
numarray.tostring/fromstring can do the job. But when confronting
multi-spectral images, e.g., RGB color images, I don't know how to do
it. Could you give some advices on that?

What's not working for you?
You wrote "In [14]: img = Image.frombuffer('RGBA', (256,256), a) ", but
it seems that "a" cannot work in "frombuffer".

What do you mean that "a" cannot work in "frombuffer"? It certainly does
on my machine. Is it raising an exception on yours? If so, please post
the code that is causing the error and the exception that is raised and
the versions of PIL and numarray that you are using.

--
Robert Kern
(e-mail address removed)

"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter
 
A

A. L.

Sorry, I make the mistakes. I have known how to use to/fromstring
method to interface between PIL and Numarray.
And your code does work.

Another question. Just like the code you provide, is it possible to
directly load image data from PIL to Numarray array without use of
to/fromstring method?

Thank you very much for your kindly help.

A.L.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top