Skip to content

Commit 9fec5d5

Browse files
authored
Merge pull request #7842 from radarhere/exif
2 parents 7b80352 + 10b48a6 commit 9fec5d5

1 file changed

Lines changed: 6 additions & 6 deletions

File tree

src/PIL/Image.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3712,7 +3712,7 @@ def _fixup_dict(self, src_dict):
37123712
# returns a dict with any single item tuples/lists as individual values
37133713
return {k: self._fixup(v) for k, v in src_dict.items()}
37143714

3715-
def _get_ifd_dict(self, offset):
3715+
def _get_ifd_dict(self, offset, group=None):
37163716
try:
37173717
# an offset pointer to the location of the nested embedded IFD.
37183718
# It should be a long, but may be corrupted.
@@ -3722,7 +3722,7 @@ def _get_ifd_dict(self, offset):
37223722
else:
37233723
from . import TiffImagePlugin
37243724

3725-
info = TiffImagePlugin.ImageFileDirectory_v2(self.head)
3725+
info = TiffImagePlugin.ImageFileDirectory_v2(self.head, group=group)
37263726
info.load(self.fp)
37273727
return self._fixup_dict(info)
37283728

@@ -3794,14 +3794,14 @@ def _get_merged_dict(self):
37943794

37953795
# get EXIF extension
37963796
if ExifTags.IFD.Exif in self:
3797-
ifd = self._get_ifd_dict(self[ExifTags.IFD.Exif])
3797+
ifd = self._get_ifd_dict(self[ExifTags.IFD.Exif], ExifTags.IFD.Exif)
37983798
if ifd:
37993799
merged_dict.update(ifd)
38003800

38013801
# GPS
38023802
if ExifTags.IFD.GPSInfo in self:
38033803
merged_dict[ExifTags.IFD.GPSInfo] = self._get_ifd_dict(
3804-
self[ExifTags.IFD.GPSInfo]
3804+
self[ExifTags.IFD.GPSInfo], ExifTags.IFD.GPSInfo
38053805
)
38063806

38073807
return merged_dict
@@ -3835,7 +3835,7 @@ def get_ifd(self, tag):
38353835
elif tag in [ExifTags.IFD.Exif, ExifTags.IFD.GPSInfo]:
38363836
offset = self._hidden_data.get(tag, self.get(tag))
38373837
if offset is not None:
3838-
self._ifds[tag] = self._get_ifd_dict(offset)
3838+
self._ifds[tag] = self._get_ifd_dict(offset, tag)
38393839
elif tag in [ExifTags.IFD.Interop, ExifTags.IFD.Makernote]:
38403840
if ExifTags.IFD.Exif not in self._ifds:
38413841
self.get_ifd(ExifTags.IFD.Exif)
@@ -3917,7 +3917,7 @@ def get_ifd(self, tag):
39173917
self._ifds[tag] = makernote
39183918
else:
39193919
# Interop
3920-
self._ifds[tag] = self._get_ifd_dict(tag_data)
3920+
self._ifds[tag] = self._get_ifd_dict(tag_data, tag)
39213921
ifd = self._ifds.get(tag, {})
39223922
if tag == ExifTags.IFD.Exif and self._hidden_data:
39233923
ifd = {

0 commit comments

Comments
 (0)