@@ -124,35 +124,33 @@ def _open(self) -> None:
124124 ]
125125
126126 def load (self ) -> Image .core .PixelAccess | None :
127- if len (self .tile ) != 1 or self .tile [0 ][0 ] != "iptc" :
128- return ImageFile .ImageFile .load (self )
129-
130- offset , compression = self .tile [0 ][2 :]
131-
132- self .fp .seek (offset )
133-
134- # Copy image data to temporary file
135- o = BytesIO ()
136- if compression == "raw" :
137- # To simplify access to the extracted file,
138- # prepend a PPM header
139- o .write (b"P5\n %d %d\n 255\n " % self .size )
140- while True :
141- type , size = self .field ()
142- if type != (8 , 10 ):
143- break
144- while size > 0 :
145- s = self .fp .read (min (size , 8192 ))
146- if not s :
127+ if self .tile :
128+ offset , compression = self .tile [0 ][2 :]
129+
130+ self .fp .seek (offset )
131+
132+ # Copy image data to temporary file
133+ o = BytesIO ()
134+ if compression == "raw" :
135+ # To simplify access to the extracted file,
136+ # prepend a PPM header
137+ o .write (b"P5\n %d %d\n 255\n " % self .size )
138+ while True :
139+ type , size = self .field ()
140+ if type != (8 , 10 ):
147141 break
148- o .write (s )
149- size -= len (s )
150-
151- with Image .open (o ) as _im :
152- _im .load ()
153- self .im = _im .im
154- self .tile = []
155- return Image .Image .load (self )
142+ while size > 0 :
143+ s = self .fp .read (min (size , 8192 ))
144+ if not s :
145+ break
146+ o .write (s )
147+ size -= len (s )
148+
149+ with Image .open (o ) as _im :
150+ _im .load ()
151+ self .im = _im .im
152+ self .tile = []
153+ return ImageFile .ImageFile .load (self )
156154
157155
158156Image .register_open (IptcImageFile .format , IptcImageFile )
0 commit comments