diff --git a/skimage/io/_io.py b/skimage/io/_io.py index e76c36f6..2f957ac2 100644 --- a/skimage/io/_io.py +++ b/skimage/io/_io.py @@ -11,53 +11,7 @@ from ..exposure import is_low_contrast from .._shared._warnings import all_warnings -__all__ = ['Image', 'imread', 'imread_collection', 'imsave', 'imshow', 'show'] - - -class Image(np.ndarray): - """Class representing Image data. - - These objects have tags for image metadata and IPython display protocol - methods for image display. - - Parameters - ---------- - arr : ndarray - Image data. - kwargs : Image tags as keywords - Specified in the form ``tag0=value``, ``tag1=value``. - - Attributes - ---------- - tags : dict - Meta-data. - - """ - - def __new__(cls, arr, **kwargs): - """Set the image data and tags according to given parameters. - - """ - x = np.asarray(arr).view(cls) - x.tags = kwargs - - return x - - def __array_finalize__(self, obj): - self.tags = getattr(obj, 'tags', {}) - - def _repr_png_(self): - return self._repr_image_format('png') - - def _repr_jpeg_(self): - return self._repr_image_format('jpeg') - - def _repr_image_format(self, format_str): - str_buffer = BytesIO() - imsave(str_buffer, self, format_str=format_str) - return_str = str_buffer.getvalue() - str_buffer.close() - return return_str +__all__ = ['imread', 'imread_collection', 'imsave', 'imshow', 'show'] def imread(fname, as_grey=False, plugin=None, flatten=None, diff --git a/skimage/io/tests/test_image.py b/skimage/io/tests/test_image.py deleted file mode 100644 index b74c973e..00000000 --- a/skimage/io/tests/test_image.py +++ /dev/null @@ -1,33 +0,0 @@ -from io import BytesIO - -import numpy as np -from skimage import img_as_ubyte -from skimage.io import Image, imread - -from numpy.testing import assert_equal, assert_array_equal - - -def test_tags(): - f = Image([1, 2, 3], foo='bar', sigma='delta') - g = Image([3, 2, 1], sun='moon') - h = Image([1, 1, 1]) - - assert_equal(f.tags['foo'], 'bar') - assert_array_equal((g + 2).tags['sun'], 'moon') - assert_equal(h.tags, {}) - - -def test_repr_png_roundtrip(): - # Use RGB-like shape since some backends convert grayscale to RGB - original_array = 255 * np.ones((5, 5, 3), dtype=np.uint8) - image = Image(original_array) - array = imread(BytesIO(image._repr_png_())) - # Force output to ubyte range for plugin compatibility. - # For example, Matplotlib will return floats even if the image is uint8. - assert_array_equal(img_as_ubyte(array), original_array) - # Note that PIL breaks with `_repr_jpeg_`. - - -if __name__ == "__main__": - from numpy.testing import run_module_suite - run_module_suite() diff --git a/skimage/io/tests/test_pil.py b/skimage/io/tests/test_pil.py index 0e752da9..77957053 100644 --- a/skimage/io/tests/test_pil.py +++ b/skimage/io/tests/test_pil.py @@ -7,8 +7,7 @@ from numpy.testing import ( from tempfile import NamedTemporaryFile from ... import data_dir -from .. import (imread, imsave, use_plugin, reset_plugins, - Image as ioImage) +from .. import imread, imsave, use_plugin, reset_plugins from ..._shared.testing import mono_check, color_check from ..._shared._warnings import expected_warnings from ..._shared._tempfile import temporary_file @@ -80,19 +79,6 @@ def test_imread_uint16(): assert_array_almost_equal(img, expected) -def test_repr_png(): - img_path = os.path.join(data_dir, 'camera.png') - original_img = ioImage(imread(img_path)) - original_img_str = original_img._repr_png_() - - with NamedTemporaryFile(suffix='.png') as temp_png: - temp_png.write(original_img_str) - temp_png.seek(0) - round_trip = imread(temp_png) - - assert np.all(original_img == round_trip) - - def test_imread_truncated_jpg(): assert_raises((IOError, ValueError), imread, os.path.join(data_dir, 'truncated.jpg'))