diff --git a/lib/matplotlib/image.py b/lib/matplotlib/image.py index 8b630ce3e442..d556d74edcce 100644 --- a/lib/matplotlib/image.py +++ b/lib/matplotlib/image.py @@ -1351,9 +1351,9 @@ def imsave(fname, arr, vmin=None, vmax=None, cmap=None, format=None, from matplotlib.figure import Figure # Fast path for saving to PNG - if (format == 'png' or format is None or - isinstance(fname, six.string_types) and - fname.lower().endswith('.png')): + if (format == 'png' or (format is None and + isinstance(fname, six.string_types) and + fname.lower().endswith('.png'))): image = AxesImage(None, cmap=cmap, origin=origin) image.set_data(arr) image.set_clim(vmin, vmax) diff --git a/lib/matplotlib/tests/test_image.py b/lib/matplotlib/tests/test_image.py index 9dc83efe27dc..e56ac4cfbe93 100644 --- a/lib/matplotlib/tests/test_image.py +++ b/lib/matplotlib/tests/test_image.py @@ -176,6 +176,17 @@ def test_imsave_color_alpha(): assert_array_equal(data, arr_buf) +def test_imsave_format(tmpdir): + # Test imsave output format based on the input filename + # (i.e. when the "format" keyword is None). + + filename = str(tmpdir.join('test_imsave.svg')) + plt.imsave(filename, np.zeros((10, 10))) + + lines = open(filename).readlines() + assert lines[0].startswith('