Thanks Jae-Joo That's doing it, thought there might be an internal way within matplotlib, but I could figure one. I'm quite confused with the canvas, dpi, ...
Regards Hans Jae-Joon Lee wrote: > > You may use StringIO. > > from scipy import * > from pylab import * > from PIL import Image > > import cStringIO > > > a = arange(16384).reshape(128,128) > > f = cStringIO.StringIO() > imsave(f, a, cmap=cm.summer,vmin=0,vmax=16383, format="png") # you'd > better set the format explicitly. > f.reset() > b = Image.open(f) > f.close() > > IHTH, > > -JJ > > > On Tue, Jun 1, 2010 at 5:18 AM, rugspin <piet_par...@web.de> wrote: >> >> >> >> Angus McMorland-2 wrote: >>> >>> On 31 May 2010 23:17, Angus McMorland <amcm...@gmail.com> wrote: >>> >>>> On 31 May 2010 19:49, rugspin <piet_par...@web.de> wrote: >>>> >>>>> >>>>> I have a small problem how to convert an image from matplotlib to PIL >>>>> >>>>> right now doing somthing like this: >>>>> ------------------------------------------ >>>>> from scipy import * >>>>> from pylab import * >>>>> from PIL import Image >>>>> >>>>> a = arange(16384).reshape(128,128) >>>>> imsave( "test.png", a, cmap=cm.summer,vmin=0,vmax=16383) >>>>> b = Image.open("test.png" ) >>>>> ------------------------------------------ >>>>> >>>> >>>> The Image.fromarray function should do what you want. For example, >>>> >>>> import numpy as np # note: use of "from foo import *" >>>> import Image # is discouraged where possible >>>> >>>> a = np.arange(128)[None,:] * np.ones(128)[:,None] >>>> >>> >>> Sorry - I was playing around with a few iterations of this line, and >>> didn't >>> provide the most useful one. Your example: >>> >>> a = np.arange(128**2).reshape(128,128) >>> >>> should also work fine. >>> >>> >>>> b = Image.fromarray(a) >>>> c = np.asarray(b) >>>> np.all(c == a) >>>> -> True >>>> >>>> I hope that helps, >>>> >>>> Angus. >>>> >>> >>> -- >>> AJC McMorland >>> Post-doctoral research fellow >>> Neurobiology, University of Pittsburgh >>> >>> ------------------------------------------------------------------------------ >>> >>> >>> _______________________________________________ >>> Matplotlib-users mailing list >>> Matplotlib-users@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users >>> >>> >> >> Thank you Angus >> but that's not exactly what i was looking for. The fromarray function is >> very basic, so I would have to take care of all the RGBA of the array. >> the >> imshow and imsave functions take care of all that for example adding a >> colormap. After choosing a reasonable colormap (vmin, vmax, ....) I would >> like to convert this into a PIL image. >> >> Best Regard >> Hans >> >> -- >> View this message in context: >> http://old.nabble.com/imshow%2C-imsave-to-PIL-image-conversion-tp28736246p28739401.html >> Sent from the matplotlib - users mailing list archive at Nabble.com. >> >> >> ------------------------------------------------------------------------------ >> >> _______________________________________________ >> Matplotlib-users mailing list >> Matplotlib-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/matplotlib-users >> > > ------------------------------------------------------------------------------ > > _______________________________________________ > Matplotlib-users mailing list > Matplotlib-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > > -- View this message in context: http://old.nabble.com/imshow%2C-imsave-to-PIL-image-conversion-tp28736246p28745632.html Sent from the matplotlib - users mailing list archive at Nabble.com. ------------------------------------------------------------------------------ _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users