mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-11-10 19:56:47 +03:00
Merge pull request #2449 from hugovk/dpi-from-exif
If DPI isn't in JPEG header, fetch from EXIF
This commit is contained in:
commit
977f319234
|
@ -117,6 +117,11 @@ def APP(self, marker):
|
|||
# plus constant header size
|
||||
self.info["mpoffset"] = self.fp.tell() - n + 4
|
||||
|
||||
# If DPI isn't in JPEG header, fetch from EXIF
|
||||
if "dpi" not in self.info and "exif" in self.info:
|
||||
x_resolution = self._getexif()[0x011A]
|
||||
self.info["dpi"] = x_resolution[0] / x_resolution[1]
|
||||
|
||||
|
||||
def COM(self, marker):
|
||||
#
|
||||
|
|
BIN
Tests/images/photoshop-200dpi.jpg
Normal file
BIN
Tests/images/photoshop-200dpi.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
|
@ -167,14 +167,14 @@ class TestFileJpeg(PillowTestCase):
|
|||
|
||||
def test_progressive_large_buffer_highest_quality(self):
|
||||
f = self.tempfile('temp.jpg')
|
||||
im = self.gen_random_image((255,255))
|
||||
im = self.gen_random_image((255, 255))
|
||||
# this requires more bytes than pixels in the image
|
||||
im.save(f, format="JPEG", progressive=True, quality=100)
|
||||
|
||||
def test_progressive_cmyk_buffer(self):
|
||||
# Issue 2272, quality 90 cmyk image is tripping the large buffer bug.
|
||||
f = BytesIO()
|
||||
im = self.gen_random_image((256,256), 'CMYK')
|
||||
im = self.gen_random_image((256, 256), 'CMYK')
|
||||
im.save(f, format='JPEG', progressive=True, quality=94)
|
||||
|
||||
def test_large_exif(self):
|
||||
|
@ -500,6 +500,14 @@ class TestFileJpeg(PillowTestCase):
|
|||
reloaded.load()
|
||||
self.assertEqual(im.info['dpi'], reloaded.info['dpi'])
|
||||
|
||||
def test_dpi_from_exif(self):
|
||||
# Arrange
|
||||
# This Photoshop CC 2017 image has DPI in EXIF not metadata
|
||||
im = Image.open("Tests/images/photoshop-200dpi.jpg")
|
||||
|
||||
# Act / Assert
|
||||
self.assertEqual(im.info.get("dpi"), 200)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
|
Loading…
Reference in New Issue
Block a user