mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-03-03 19:45:56 +03:00
Merge pull request #5289 from radarhere/ipythonviewer
This commit is contained in:
commit
6108596ff8
|
@ -62,4 +62,20 @@ def test_viewer():
|
||||||
|
|
||||||
def test_viewers():
|
def test_viewers():
|
||||||
for viewer in ImageShow._viewers:
|
for viewer in ImageShow._viewers:
|
||||||
|
try:
|
||||||
viewer.get_command("test.jpg")
|
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
|
||||||
|
|
|
@ -9,6 +9,7 @@ All default viewers convert the image to be shown to PNG format.
|
||||||
|
|
||||||
.. autofunction:: PIL.ImageShow.show
|
.. autofunction:: PIL.ImageShow.show
|
||||||
|
|
||||||
|
.. autoclass:: IPythonViewer
|
||||||
.. autoclass:: WindowsViewer
|
.. autoclass:: WindowsViewer
|
||||||
.. autoclass:: MacViewer
|
.. autoclass:: MacViewer
|
||||||
|
|
||||||
|
|
|
@ -21,10 +21,17 @@ TODO
|
||||||
API Additions
|
API Additions
|
||||||
=============
|
=============
|
||||||
|
|
||||||
TODO
|
ImageShow.IPythonViewer
|
||||||
^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
TODO
|
If IPython is present, this new ``ImageShow.Viewer`` subclass will be
|
||||||
|
registered. It displays images on all IPython frontends. This will be helpful
|
||||||
|
to users of Google Colab, allowing ``im.show()`` to display images.
|
||||||
|
|
||||||
|
It is lower in priority than the other default Viewer instances, so it will
|
||||||
|
only be used by ``im.show()`` or ``ImageShow.show()`` if none of the other
|
||||||
|
viewers are available. This means that the behaviour of ``ImageShow`` will stay
|
||||||
|
the same for most Pillow users.
|
||||||
|
|
||||||
Security
|
Security
|
||||||
========
|
========
|
||||||
|
|
|
@ -225,6 +225,23 @@ if sys.platform not in ("win32", "darwin"): # unixoids
|
||||||
if shutil.which("xv"):
|
if shutil.which("xv"):
|
||||||
register(XVViewer)
|
register(XVViewer)
|
||||||
|
|
||||||
|
|
||||||
|
class IPythonViewer(Viewer):
|
||||||
|
"""The viewer for IPython frontends."""
|
||||||
|
|
||||||
|
def show_image(self, image, **options):
|
||||||
|
ipython_display(image)
|
||||||
|
return 1
|
||||||
|
|
||||||
|
|
||||||
|
try:
|
||||||
|
from IPython.display import display as ipython_display
|
||||||
|
except ImportError:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
register(IPythonViewer)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
||||||
if len(sys.argv) < 2:
|
if len(sys.argv) < 2:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user