Skip to content

Commit

Permalink
Merge 8a9bd2c into fbb92e9
Browse files Browse the repository at this point in the history
  • Loading branch information
lambdafu committed Jan 19, 2017
2 parents fbb92e9 + 8a9bd2c commit a5de6e8
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 1 deletion.
6 changes: 5 additions & 1 deletion PIL/TiffImagePlugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -1163,11 +1163,15 @@ def _setup(self):
yres = self.tag_v2.get(Y_RESOLUTION, 1)

if xres and yres:
resunit = self.tag_v2.get(RESOLUTION_UNIT, 1)
resunit = self.tag_v2.get(RESOLUTION_UNIT)
if resunit == 2: # dots per inch
self.info["dpi"] = xres, yres
elif resunit == 3: # dots per centimeter. convert to dpi
self.info["dpi"] = xres * 2.54, yres * 2.54
elif resunit == None: # used to default to 1, but now 2)
self.info["dpi"] = xres, yres
# For backward compatibility, we also preserve the old behavior.
self.info["resolution"] = xres, yres
else: # No absolute unit of measurement
self.info["resolution"] = xres, yres

Expand Down
18 changes: 18 additions & 0 deletions Tests/test_file_tiff.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,24 @@ def test_xyres_tiff(self):

self.assertEqual(im.info['dpi'], (72., 72.))

def test_xyres_fallback_tiff(self):
from PIL.TiffImagePlugin import X_RESOLUTION, Y_RESOLUTION, RESOLUTION_UNIT
filename = "Tests/images/compression.tif"
im = Image.open(filename)

# v2 api
self.assertIsInstance(im.tag_v2[X_RESOLUTION],
TiffImagePlugin.IFDRational)
self.assertIsInstance(im.tag_v2[Y_RESOLUTION],
TiffImagePlugin.IFDRational)
self.assertRaises(KeyError,
lambda: im.tag_v2[RESOLUTION_UNIT])

# Legacy.
self.assertEqual(im.info['resolution'], (100., 100.))
# Fallback "inch".
self.assertEqual(im.info['dpi'], (100., 100.))

def test_int_resolution(self):
from PIL.TiffImagePlugin import X_RESOLUTION, Y_RESOLUTION
filename = "Tests/images/pil168.tif"
Expand Down

0 comments on commit a5de6e8

Please sign in to comment.