Skip to content

Commit 94de18b

Browse files
committed
Do not modify supplied Exif object
1 parent 5cf20fa commit 94de18b

2 files changed

Lines changed: 6 additions & 6 deletions

File tree

‎Tests/test_file_jpeg.py‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -207,10 +207,10 @@ def test_dpi_jfif_cm(self) -> None:
207207
def test_dpi_with_keep_rgb(self, tmp_path: Path) -> None:
208208
im = Image.new("RGB", (20, 20), (255, 0, 0))
209209
f = tmp_path / "temp.jpg"
210-
im.save(f, "JPEG", dpi=(72, 72), keep_rgb=True)
210+
im.save(f, "JPEG", dpi=(96, 96), keep_rgb=True)
211211

212212
with Image.open(f) as reloaded:
213-
assert reloaded.info["dpi"] == (72, 72)
213+
assert reloaded.info["dpi"] == (96, 96)
214214
assert_image_equal(reloaded, im)
215215

216216
def test_icc(self, tmp_path: Path) -> None:

‎src/PIL/JpegImagePlugin.py‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -818,10 +818,10 @@ def validate_qtables(
818818
if "dpi" in info:
819819
dpi = tuple(round(x) for x in info["dpi"])
820820
if keep_rgb:
821-
if not isinstance(exif, Image.Exif):
822-
exif_object = Image.Exif()
823-
exif_object.load(exif)
824-
exif = exif_object
821+
exif_object = Image.Exif()
822+
exif_object.load(exif.tobytes() if isinstance(exif, Image.Exif) else exif)
823+
exif = exif_object
824+
825825
exif[0x011A] = dpi
826826
else:
827827
jfif_dpi = dpi

0 commit comments

Comments
 (0)