From 051a4108593df67b40ce2617c412c1e0a15e7faf Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Thu, 22 Sep 2016 19:41:32 +1000 Subject: [PATCH] Convert DPI to ints when saving as JPEG --- PIL/JpegImagePlugin.py | 2 +- Tests/test_file_jpeg.py | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/PIL/JpegImagePlugin.py b/PIL/JpegImagePlugin.py index a0d06672471..815ee02b6d8 100644 --- a/PIL/JpegImagePlugin.py +++ b/PIL/JpegImagePlugin.py @@ -593,7 +593,7 @@ def _save(im, fp, filename): info = im.encoderinfo - dpi = info.get("dpi", (0, 0)) + dpi = [int(round(x)) for x in info.get("dpi", (0, 0))] quality = info.get("quality", 0) subsampling = info.get("subsampling", -1) diff --git a/Tests/test_file_jpeg.py b/Tests/test_file_jpeg.py index d04218b1a6c..5e66cc76552 100644 --- a/Tests/test_file_jpeg.py +++ b/Tests/test_file_jpeg.py @@ -469,6 +469,19 @@ def test_save_modes_with_warnings(self): img = Image.new(mode, (20, 20)) self.assert_warning(DeprecationWarning, img.save, out, "JPEG") + def test_save_tiff_with_dpi(self): + # Arrange + outfile = self.tempfile("temp.tif") + im = Image.open("Tests/images/hopper.tif") + + # Act + im.save(outfile, 'JPEG', dpi=im.info['dpi']) + + # Assert + reloaded = Image.open(outfile) + reloaded.load() + self.assertEqual(im.info['dpi'], reloaded.info['dpi']) + if __name__ == '__main__': unittest.main()