mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-12-24 17:06:16 +03:00
add _repr_jpg_ for ipython display
Signed-off-by: Ishant Mrinal Haloi <mrinal.haloi11@gmail.com>
This commit is contained in:
parent
b073a8962b
commit
5377b0735f
|
@ -922,6 +922,19 @@ class TestFileJpeg:
|
|||
im.load()
|
||||
ImageFile.LOAD_TRUNCATED_IMAGES = False
|
||||
|
||||
def test_repr_jpg(self):
|
||||
im = hopper()
|
||||
|
||||
with Image.open(BytesIO(im._repr_jpg_())) as repr_jpg:
|
||||
assert repr_jpg.format == "JPEG"
|
||||
assert_image_equal(im, repr_jpg)
|
||||
|
||||
def test_repr_jpg_error(self):
|
||||
im = hopper("F")
|
||||
|
||||
with pytest.raises(ValueError):
|
||||
im._repr_jpg_()
|
||||
|
||||
|
||||
@pytest.mark.skipif(not is_win32(), reason="Windows only")
|
||||
@skip_unless_feature("jpg")
|
||||
|
|
|
@ -633,19 +633,36 @@ class Image:
|
|||
)
|
||||
)
|
||||
|
||||
def _repr_png_(self):
|
||||
def _repr_image(self, format):
|
||||
"""iPython display hook support
|
||||
|
||||
:param format: Image format.
|
||||
:returns: png version of the image as bytes
|
||||
"""
|
||||
b = io.BytesIO()
|
||||
try:
|
||||
self.save(b, "PNG")
|
||||
self.save(b, format)
|
||||
except Exception as e:
|
||||
msg = "Could not save to PNG for display"
|
||||
msg = f"Could not save to {format} for display"
|
||||
raise ValueError(msg) from e
|
||||
return b.getvalue()
|
||||
|
||||
def _repr_png_(self):
|
||||
"""iPython display hook support for PNG format.
|
||||
|
||||
:returns: png version of the image as bytes
|
||||
"""
|
||||
return self._repr_image("PNG")
|
||||
|
||||
def _repr_jpg_(self):
|
||||
"""iPython display hook support for JPEG format.
|
||||
|
||||
:returns: jpg version of the image as bytes
|
||||
"""
|
||||
return self._repr_image("JPEG")
|
||||
|
||||
_repr_jpeg_ = _repr_jpg_
|
||||
|
||||
@property
|
||||
def __array_interface__(self):
|
||||
# numpy array interface support
|
||||
|
|
Loading…
Reference in New Issue
Block a user