diff --git a/Tests/test_imagemorph.py b/Tests/test_imagemorph.py index b51b212e0..89a4022ae 100644 --- a/Tests/test_imagemorph.py +++ b/Tests/test_imagemorph.py @@ -1,8 +1,7 @@ # Test the ImageMorphology functionality from helper import unittest, PillowTestCase, hopper -from PIL import Image -from PIL import ImageMorph +from PIL import Image, ImageMorph, _imagingmorph class MorphTests(PillowTestCase): @@ -284,6 +283,23 @@ class MorphTests(PillowTestCase): # Assert self.assertEqual(mop.lut, lut) + def test_wrong_mode(self): + lut = ImageMorph.LutBuilder(op_name='corner').build_lut() + imrgb = Image.new('RGB', (10, 10)) + iml = Image.new('L', (10, 10)) + + with self.assertRaises(ValueError): + _imagingmorph.apply(bytes(lut), imrgb.im.id, iml.im.id) + + with self.assertRaises(ValueError): + _imagingmorph.apply(bytes(lut), iml.im.id, imrgb.im.id) + + with self.assertRaises(ValueError): + _imagingmorph.match(bytes(lut), imrgb.im.id) + + # Should not raise + _imagingmorph.match(bytes(lut), iml.im.id) + if __name__ == '__main__': unittest.main() diff --git a/src/_imagingmorph.c b/src/_imagingmorph.c index 73979f635..0b60e4c80 100644 --- a/src/_imagingmorph.c +++ b/src/_imagingmorph.c @@ -64,14 +64,14 @@ apply(PyObject *self, PyObject* args) width = imgin->xsize; height = imgin->ysize; - if (imgin->type != IMAGING_TYPE_UINT8 && + if (imgin->type != IMAGING_TYPE_UINT8 || imgin->bands != 1) { - PyErr_SetString(PyExc_RuntimeError, "Unsupported image type"); + PyErr_SetString(PyExc_ValueError, "Unsupported image type"); return NULL; } - if (imgout->type != IMAGING_TYPE_UINT8 && + if (imgout->type != IMAGING_TYPE_UINT8 || imgout->bands != 1) { - PyErr_SetString(PyExc_RuntimeError, "Unsupported image type"); + PyErr_SetString(PyExc_ValueError, "Unsupported image type"); return NULL; } @@ -167,9 +167,9 @@ match(PyObject *self, PyObject* args) lut = PyBytes_AsString(py_lut); imgin = (Imaging) i0; - if (imgin->type != IMAGING_TYPE_UINT8 && + if (imgin->type != IMAGING_TYPE_UINT8 || imgin->bands != 1) { - PyErr_SetString(PyExc_RuntimeError, "Unsupported image type"); + PyErr_SetString(PyExc_ValueError, "Unsupported image type"); return NULL; }