diff --git a/Tests/images/string_dimension.tiff b/Tests/images/string_dimension.tiff new file mode 100644 index 00000000000..d0b55830128 Binary files /dev/null and b/Tests/images/string_dimension.tiff differ diff --git a/Tests/test_file_tiff.py b/Tests/test_file_tiff.py index 2baeb6ae054..2d15de2bd56 100644 --- a/Tests/test_file_tiff.py +++ b/Tests/test_file_tiff.py @@ -587,6 +587,11 @@ def test_close_on_load_nonexclusive(self): im.load() self.assertFalse(fp.closed) + def test_string_dimension(self): + # Assert that an error is raised if one of the dimensions is a string + with self.assertRaises(ValueError): + Image.open("Tests/images/string_dimension.tiff") + @unittest.skipUnless(sys.platform.startswith("win32"), "Windows only") class TestFileTiffW32(PillowTestCase): diff --git a/src/PIL/TiffImagePlugin.py b/src/PIL/TiffImagePlugin.py index 9fcffb74273..a927cd3ed90 100644 --- a/src/PIL/TiffImagePlugin.py +++ b/src/PIL/TiffImagePlugin.py @@ -1239,8 +1239,8 @@ def _setup(self): print("- YCbCr subsampling:", self.tag.get(530)) # size - xsize = self.tag_v2.get(IMAGEWIDTH) - ysize = self.tag_v2.get(IMAGELENGTH) + xsize = int(self.tag_v2.get(IMAGEWIDTH)) + ysize = int(self.tag_v2.get(IMAGELENGTH)) self._size = xsize, ysize if DEBUG: