@@ -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