diff --git a/src/PIL/JpegImagePlugin.py b/src/PIL/JpegImagePlugin.py index 0fcb17e0919..530f65cc149 100644 --- a/src/PIL/JpegImagePlugin.py +++ b/src/PIL/JpegImagePlugin.py @@ -520,27 +520,22 @@ def _read_dpi_from_exif(self) -> None: return try: exif = self.getexif() - x_resolution = exif[0x011A] - try: - dpi = float(x_resolution[0]) / x_resolution[1] - except TypeError: - dpi = x_resolution + dpi = exif[0x011A] if math.isnan(dpi): msg = "DPI is not a number" raise ValueError(msg) if exif.get(0x0128) == 3: # ResolutionUnit is cm # 1 dpcm = 2.54 dpi dpi *= 2.54 - self.info["dpi"] = dpi, dpi except ( struct.error, # truncated EXIF KeyError, # dpi not included SyntaxError, # invalid/unreadable EXIF TypeError, # dpi is an invalid float ValueError, # dpi is an invalid float - ZeroDivisionError, # invalid dpi rational value ): - self.info["dpi"] = 72, 72 + dpi = 72 + self.info["dpi"] = dpi, dpi def _getmp(self) -> dict[int, Any] | None: return _getmp(self)