From c59cd1c4967b3e2b82e67ad456b0b50324d0bbc8 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Fri, 19 Sep 2014 18:50:42 -0500 Subject: [PATCH] Catch PIL imread problems early and generate error message --- skimage/io/_plugins/pil_plugin.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/skimage/io/_plugins/pil_plugin.py b/skimage/io/_plugins/pil_plugin.py index eb6467df..9a56c0be 100644 --- a/skimage/io/_plugins/pil_plugin.py +++ b/skimage/io/_plugins/pil_plugin.py @@ -29,7 +29,11 @@ def imread(fname, dtype=None): """ im = Image.open(fname) - return pil_to_ndarray(im, dtype) + try: + return pil_to_ndarray(im, dtype) + except IOError: + raise ValueError('Could not load "%s": make sure you have library ' + 'support for "%s" files' % (fname, im.format)) def pil_to_ndarray(im, dtype=None): @@ -55,6 +59,8 @@ def pil_to_ndarray(im, dtype=None): im.shape = shape[::-1] elif 'A' in im.mode: im = im.convert('RGBA') + # this will raise an IOError if the file is not readable + im.getdata()[0] im = np.array(im, dtype=dtype) if fp is not None: fp.close()