By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
443,965 Members | 1,779 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 443,965 IT Pros & Developers. It's quick & easy.

help for conversion of NUMARRAY to PIL object

P: n/a
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.

Sep 15 '05 #1
Share this Question
Share on Google+
4 Replies


P: n/a
A. L. wrote:
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
rk***@ucsd.edu

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

Sep 15 '05 #2

P: n/a
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".

Sep 16 '05 #3

P: n/a
A. L. wrote:
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
rk***@ucsd.edu

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

Sep 16 '05 #4

P: n/a
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.

Sep 16 '05 #5

This discussion thread is closed

Replies have been disabled for this discussion.