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

Reply via email to