@@ -3714,7 +3714,7 @@ def _fixup_dict(self, src_dict):
37143714 # returns a dict with any single item tuples/lists as individual values
37153715 return {k : self ._fixup (v ) for k , v in src_dict .items ()}
37163716
3717- def _get_ifd_dict (self , offset ):
3717+ def _get_ifd_dict (self , offset , group = None ):
37183718 try :
37193719 # an offset pointer to the location of the nested embedded IFD.
37203720 # It should be a long, but may be corrupted.
@@ -3724,7 +3724,7 @@ def _get_ifd_dict(self, offset):
37243724 else :
37253725 from . import TiffImagePlugin
37263726
3727- info = TiffImagePlugin .ImageFileDirectory_v2 (self .head )
3727+ info = TiffImagePlugin .ImageFileDirectory_v2 (self .head , group = group )
37283728 info .load (self .fp )
37293729 return self ._fixup_dict (info )
37303730
@@ -3796,14 +3796,14 @@ def _get_merged_dict(self):
37963796
37973797 # get EXIF extension
37983798 if ExifTags .IFD .Exif in self :
3799- ifd = self ._get_ifd_dict (self [ExifTags .IFD .Exif ])
3799+ ifd = self ._get_ifd_dict (self [ExifTags .IFD .Exif ], ExifTags . IFD . Exif )
38003800 if ifd :
38013801 merged_dict .update (ifd )
38023802
38033803 # GPS
38043804 if ExifTags .IFD .GPSInfo in self :
38053805 merged_dict [ExifTags .IFD .GPSInfo ] = self ._get_ifd_dict (
3806- self [ExifTags .IFD .GPSInfo ]
3806+ self [ExifTags .IFD .GPSInfo ], ExifTags . IFD . GPSInfo
38073807 )
38083808
38093809 return merged_dict
@@ -3837,7 +3837,7 @@ def get_ifd(self, tag):
38373837 elif tag in [ExifTags .IFD .Exif , ExifTags .IFD .GPSInfo ]:
38383838 offset = self ._hidden_data .get (tag , self .get (tag ))
38393839 if offset is not None :
3840- self ._ifds [tag ] = self ._get_ifd_dict (offset )
3840+ self ._ifds [tag ] = self ._get_ifd_dict (offset , tag )
38413841 elif tag in [ExifTags .IFD .Interop , ExifTags .IFD .Makernote ]:
38423842 if ExifTags .IFD .Exif not in self ._ifds :
38433843 self .get_ifd (ExifTags .IFD .Exif )
@@ -3919,7 +3919,7 @@ def get_ifd(self, tag):
39193919 self ._ifds [tag ] = makernote
39203920 else :
39213921 # Interop
3922- self ._ifds [tag ] = self ._get_ifd_dict (tag_data )
3922+ self ._ifds [tag ] = self ._get_ifd_dict (tag_data , tag )
39233923 ifd = self ._ifds .get (tag , {})
39243924 if tag == ExifTags .IFD .Exif and self ._hidden_data :
39253925 ifd = {
0 commit comments