On Sat, Apr 7, 2012 at 11:25 AM, Jostein Bø Fløystad < jostein.floys...@gmail.com> wrote:
> I've had problems saving MxNx3 (RGB) numpy arrays as images using > imsave. It fails with an exception, and the problem seems to be line > 1243 in image.py: > > figsize = [x / float(dpi) for x in arr.shape[::-1]] > > The purpose of arr.shape[::-1] seems to be to reorder the height and > width dimensions. It works as intended for MxN arrays, but not NxMx3 > arrays -- they cause a function to complain about an argument too > many. > > I have modified the above line to use (arr.shape[1], arr.shape[0]) > instead of arr.shape[::-1], and that solves the problem for me, and I > get the output I expect (and the code still passes all tests it should > pass). However, there could very well be subtleties in the codebase > that I don't know about. > > The attached patches add a simple test case, the above mentioned > change and a few updates to the documentation of imsave. > > Best, > > Jostein. > > Jostein, That second patch certain fixes that part of the bug, but I still can't save an NxMx3 (or 4) array using imsave(). Are you sure this is all of the patch? I get the following exception: ``` Traceback (most recent call last): File "quickshow.py", line 106, in <module> plt.imsave(stem + '.png', cm(d)) File "/home/broot/.local/lib/python2.7/site-packages/matplotlib-1.2.x-py2.7-linux-x86_64.egg/matplotlib/pyplot.py", line 1757, in imsave return _imsave(*args, **kwargs) File "/home/broot/.local/lib/python2.7/site-packages/matplotlib-1.2.x-py2.7-linux-x86_64.egg/matplotlib/image.py", line 1244, in imsave fig = Figure(figsize=figsize, dpi=dpi, frameon=False) File "/home/broot/.local/lib/python2.7/site-packages/matplotlib-1.2.x-py2.7-linux-x86_64.egg/matplotlib/figure.py", line 269, in __init__ self.bbox_inches = Bbox.from_bounds(0, 0, *figsize) TypeError: from_bounds() takes exactly 4 arguments (5 given) ``` Cheers! Ben Root
------------------------------------------------------------------------------ For Developers, A Lot Can Happen In A Second. Boundary is the first to Know...and Tell You. Monitor Your Applications in Ultra-Fine Resolution. Try it FREE! http://p.sf.net/sfu/Boundary-d2dvs2
_______________________________________________ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel