diff --git a/skimage/io/_plugins/pil_plugin.py b/skimage/io/_plugins/pil_plugin.py index 7ff2e191..ae74ff7b 100644 --- a/skimage/io/_plugins/pil_plugin.py +++ b/skimage/io/_plugins/pil_plugin.py @@ -176,20 +176,23 @@ def ndarray_to_pil(arr, format_str=None): mode = 'L' mode_base = 'L' + try: + array_buffer = arr.tobytes() + except AttributeError: + array_buffer = arr.tostring() # Numpy < 1.9 + if arr.ndim == 2: im = Image.new(mode_base, arr.T.shape) try: - im.frombytes(arr.tobytes(), 'raw', mode) + im.frombytes(array_buffer, 'raw', mode) except AttributeError: - im.fromstring(arr.tostring(), 'raw', mode) - + im.fromstring(array_buffer, 'raw', mode) # PIL 1.1.7 else: + image_shape = (arr.shape[1], arr.shape[0]) try: - im = Image.frombytes(mode, (arr.shape[1], arr.shape[0]), - arr.tobytes()) + im = Image.frombytes(mode, image_shape, array_buffer) except AttributeError: - im = Image.fromstring(mode, (arr.shape[1], arr.shape[0]), - arr.tostring()) + im = Image.fromstring(mode, image_shape, array_buffer) # PIL 1.1.7 return im