Catch PIL imread problems early and generate error message

This commit is contained in:
Steven Silvester
2014-09-19 18:50:42 -05:00
parent bd5e2d60ff
commit c59cd1c496
+7 -1
View File
@@ -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()