@@ -124,35 +124,33 @@ def _open(self) -> None:
124
124
]
125
125
126
126
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 ):
147
141
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 )
156
154
157
155
158
156
Image .register_open (IptcImageFile .format , IptcImageFile )
0 commit comments