diff --git a/PIL/EpsImagePlugin.py b/PIL/EpsImagePlugin.py index d077ca1ab..83024b63f 100644 --- a/PIL/EpsImagePlugin.py +++ b/PIL/EpsImagePlugin.py @@ -275,13 +275,13 @@ class EpsImageFile(ImageFile.ImageFile): s = fp.readline().strip('\r\n') - if s[0] != "%": + if s[:1] != "%": break # # Scan for an "ImageData" descriptor - while s[0] == "%": + while s[:1] == "%": if len(s) > 255: raise SyntaxError("not an EPS file") diff --git a/Tests/images/illu10_no_preview.eps b/Tests/images/illu10_no_preview.eps new file mode 100644 index 000000000..ffe8a537a Binary files /dev/null and b/Tests/images/illu10_no_preview.eps differ diff --git a/Tests/images/illu10_preview.eps b/Tests/images/illu10_preview.eps new file mode 100644 index 000000000..74d2fec93 Binary files /dev/null and b/Tests/images/illu10_preview.eps differ diff --git a/Tests/images/illuCS6_no_preview.eps b/Tests/images/illuCS6_no_preview.eps new file mode 100644 index 000000000..4be1ea9a8 Binary files /dev/null and b/Tests/images/illuCS6_no_preview.eps differ diff --git a/Tests/images/illuCS6_preview.eps b/Tests/images/illuCS6_preview.eps new file mode 100644 index 000000000..5e676a754 Binary files /dev/null and b/Tests/images/illuCS6_preview.eps differ diff --git a/Tests/test_file_eps.py b/Tests/test_file_eps.py index 71c40116b..861cf264a 100644 --- a/Tests/test_file_eps.py +++ b/Tests/test_file_eps.py @@ -223,6 +223,21 @@ class TestFileEps(PillowTestCase): self._test_readline_file_psfile(s, ending) + def test_open_eps(self): + # https://github.com/python-pillow/Pillow/issues/1104 + # Arrange + FILES = ["Tests/images/illu10_no_preview.eps", + "Tests/images/illu10_preview.eps", + "Tests/images/illuCS6_no_preview.eps", + "Tests/images/illuCS6_preview.eps"] + + # Act + for filename in FILES: + img = Image.open(filename) + + # Assert + self.assertEqual(img.mode, "RGB") + if __name__ == '__main__': unittest.main()