diff --git a/PIL/WebPImagePlugin.py b/PIL/WebPImagePlugin.py index 90e2b540e..ab60c8dfa 100644 --- a/PIL/WebPImagePlugin.py +++ b/PIL/WebPImagePlugin.py @@ -32,8 +32,10 @@ class WebPImageFile(ImageFile.ImageFile): def _open(self): data, width, height, self.mode, icc_profile, exif = _webp.WebPDecode(self.fp.read()) - self.info["icc_profile"] = icc_profile - self.info["exif"] = exif + if icc_profile: + self.info["icc_profile"] = icc_profile + if exif: + self.info["exif"] = exif self.size = width, height self.fp = BytesIO(data) diff --git a/Tests/test_file_webp_metadata.py b/Tests/test_file_webp_metadata.py index 886011322..b4146c3ee 100644 --- a/Tests/test_file_webp_metadata.py +++ b/Tests/test_file_webp_metadata.py @@ -82,3 +82,20 @@ def test_write_icc_metadata(): assert_true(webp_icc_profile) if webp_icc_profile: assert_equal(webp_icc_profile, expected_icc_profile, "Webp ICC didn't match") + + +def test_read_no_exif(): + file_path = "Tests/images/flower.jpg" + image = Image.open(file_path) + expected_exif = image.info['exif'] + + buffer = BytesIO() + + image.save(buffer, "webp") + + buffer.seek(0) + webp_image = Image.open(buffer) + + assert_false(webp_image._getexif()) + +