diff --git a/Tests/test_imageshow.py b/Tests/test_imageshow.py index 78e80f521d6..5981e22c012 100644 --- a/Tests/test_imageshow.py +++ b/Tests/test_imageshow.py @@ -62,4 +62,20 @@ def test_viewer(): def test_viewers(): for viewer in ImageShow._viewers: - viewer.get_command("test.jpg") + try: + viewer.get_command("test.jpg") + except NotImplementedError: + pass + + +def test_ipythonviewer(): + pytest.importorskip("IPython", reason="IPython not installed") + for viewer in ImageShow._viewers: + if isinstance(viewer, ImageShow.IPythonViewer): + test_viewer = viewer + break + else: + assert False + + im = hopper() + assert test_viewer.show(im) == 1 diff --git a/src/PIL/ImageShow.py b/src/PIL/ImageShow.py index fceb6537838..f1cf83e33c5 100644 --- a/src/PIL/ImageShow.py +++ b/src/PIL/ImageShow.py @@ -114,6 +114,20 @@ def show_file(self, file, **options): # -------------------------------------------------------------------- +class IPythonViewer(Viewer): + def show_image(self, image, **options): + display(image) + return 1 + + +try: + from IPython.display import display +except ImportError: + pass +else: + register(IPythonViewer) + + class WindowsViewer(Viewer): """The default viewer on Windows is the default system application for PNG files."""