mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-11-13 05:06:49 +03:00
Use default DPI when exif provides invalid x_resolution
This commit is contained in:
parent
97ea6898ca
commit
bcc766e02d
BIN
Tests/images/invalid-exif-without-x-resolution.jpg
Normal file
BIN
Tests/images/invalid-exif-without-x-resolution.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.5 KiB |
|
@ -634,6 +634,14 @@ class TestFileJpeg(PillowTestCase):
|
||||||
# OSError for unidentified image.
|
# OSError for unidentified image.
|
||||||
self.assertEqual(im.info.get("dpi"), (72, 72))
|
self.assertEqual(im.info.get("dpi"), (72, 72))
|
||||||
|
|
||||||
|
def test_invalid_exif_x_resolution(self):
|
||||||
|
# When no x or y resolution defined in EXIF
|
||||||
|
im = Image.open("Tests/images/invalid-exif-without-x-resolution.jpg")
|
||||||
|
|
||||||
|
# This should return the default, and not a ValueError or
|
||||||
|
# OSError for unidentified image.
|
||||||
|
self.assertEqual(im.info.get("dpi"), (72, 72))
|
||||||
|
|
||||||
def test_ifd_offset_exif(self):
|
def test_ifd_offset_exif(self):
|
||||||
# Arrange
|
# Arrange
|
||||||
# This image has been manually hexedited to have an IFD offset of 10,
|
# This image has been manually hexedited to have an IFD offset of 10,
|
||||||
|
|
|
@ -172,7 +172,7 @@ def APP(self, marker):
|
||||||
# 1 dpcm = 2.54 dpi
|
# 1 dpcm = 2.54 dpi
|
||||||
dpi *= 2.54
|
dpi *= 2.54
|
||||||
self.info["dpi"] = int(dpi + 0.5), int(dpi + 0.5)
|
self.info["dpi"] = int(dpi + 0.5), int(dpi + 0.5)
|
||||||
except (KeyError, SyntaxError, ZeroDivisionError):
|
except (KeyError, SyntaxError, ValueError, ZeroDivisionError):
|
||||||
# SyntaxError for invalid/unreadable EXIF
|
# SyntaxError for invalid/unreadable EXIF
|
||||||
# KeyError for dpi not included
|
# KeyError for dpi not included
|
||||||
# ZeroDivisionError for invalid dpi rational value
|
# ZeroDivisionError for invalid dpi rational value
|
||||||
|
|
Loading…
Reference in New Issue
Block a user