diff --git a/lib/matplotlib/image.py b/lib/matplotlib/image.py index f1970a356536..0643d9f9aff2 100644 --- a/lib/matplotlib/image.py +++ b/lib/matplotlib/image.py @@ -649,15 +649,7 @@ def set_data(self, A): ---------- A : array-like """ - # check if data is PIL Image without importing Image - if hasattr(A, 'getpixel'): - if A.mode == 'L': - # greyscale image, but our logic assumes rgba: - self._A = pil_to_array(A.convert('RGBA')) - else: - self._A = pil_to_array(A) - else: - self._A = cbook.safe_masked_invalid(A, copy=True) + self._A = cbook.safe_masked_invalid(A, copy=True) if (self._A.dtype != np.uint8 and not np.can_cast(self._A.dtype, float, "same_kind")): diff --git a/lib/matplotlib/tests/test_image.py b/lib/matplotlib/tests/test_image.py index 7edfc38bda69..a6d08ba61929 100644 --- a/lib/matplotlib/tests/test_image.py +++ b/lib/matplotlib/tests/test_image.py @@ -18,7 +18,7 @@ from matplotlib.cbook import MatplotlibDeprecationWarning from matplotlib.image import (AxesImage, BboxImage, FigureImage, NonUniformImage, PcolorImage) -from matplotlib.testing.decorators import image_comparison +from matplotlib.testing.decorators import check_figures_equal, image_comparison from matplotlib.transforms import Bbox, Affine2D, TransformedBbox import pytest @@ -106,6 +106,15 @@ def test_image_python_io(): plt.imread(buffer) +@check_figures_equal() +def test_imshow_pil(fig_test, fig_ref): + pytest.importorskip("PIL") + img = plt.imread(os.path.join(os.path.dirname(__file__), + 'baseline_images', 'test_image', 'uint16.tif')) + fig_test.subplots().imshow(img) + fig_ref.subplots().imshow(np.asarray(img)) + + def test_imread_pil_uint16(): pytest.importorskip("PIL") img = plt.imread(os.path.join(os.path.dirname(__file__),