@@ -55,7 +55,7 @@ class AlphaEncoding(IntEnum):
5555 DXT5 = 7
5656
5757
58- def unpack_565 (i ) :
58+ def unpack_565 (i : int ) -> tuple [ int , int , int ] :
5959 return ((i >> 11 ) & 0x1F ) << 3 , ((i >> 5 ) & 0x3F ) << 2 , (i & 0x1F ) << 3
6060
6161
@@ -284,7 +284,8 @@ def decode(self, buffer):
284284 raise OSError (msg ) from e
285285 return - 1 , 0
286286
287- def _read_blp_header (self ):
287+ def _read_blp_header (self ) -> None :
288+ assert self .fd is not None
288289 self .fd .seek (4 )
289290 (self ._blp_compression ,) = struct .unpack ("<i" , self ._safe_read (4 ))
290291
@@ -303,10 +304,10 @@ def _read_blp_header(self):
303304 self ._blp_offsets = struct .unpack ("<16I" , self ._safe_read (16 * 4 ))
304305 self ._blp_lengths = struct .unpack ("<16I" , self ._safe_read (16 * 4 ))
305306
306- def _safe_read (self , length ) :
307+ def _safe_read (self , length : int ) -> bytes :
307308 return ImageFile ._safe_read (self .fd , length )
308309
309- def _read_palette (self ):
310+ def _read_palette (self ) -> list [ tuple [ int , int , int , int ]] :
310311 ret = []
311312 for i in range (256 ):
312313 try :
@@ -349,29 +350,30 @@ def _load(self) -> None:
349350 msg = f"Unsupported BLP compression { repr (self ._blp_encoding )} "
350351 raise BLPFormatError (msg )
351352
352- def _decode_jpeg_stream (self ):
353+ def _decode_jpeg_stream (self ) -> None :
353354 from .JpegImagePlugin import JpegImageFile
354355
355356 (jpeg_header_size ,) = struct .unpack ("<I" , self ._safe_read (4 ))
356357 jpeg_header = self ._safe_read (jpeg_header_size )
358+ assert self .fd is not None
357359 self ._safe_read (self ._blp_offsets [0 ] - self .fd .tell ()) # What IS this?
358360 data = self ._safe_read (self ._blp_lengths [0 ])
359361 data = jpeg_header + data
360- data = BytesIO (data )
361- image = JpegImageFile (data )
362+ image = JpegImageFile (BytesIO (data ))
362363 Image ._decompression_bomb_check (image .size )
363364 if image .mode == "CMYK" :
364365 decoder_name , extents , offset , args = image .tile [0 ]
365366 image .tile = [(decoder_name , extents , offset , (args [0 ], "CMYK" ))]
366367 r , g , b = image .convert ("RGB" ).split ()
367- image = Image .merge ("RGB" , (b , g , r ))
368- self .set_as_raw (image .tobytes ())
368+ reversed_image = Image .merge ("RGB" , (b , g , r ))
369+ self .set_as_raw (reversed_image .tobytes ())
369370
370371
371372class BLP2Decoder (_BLPBaseDecoder ):
372- def _load (self ):
373+ def _load (self ) -> None :
373374 palette = self ._read_palette ()
374375
376+ assert self .fd is not None
375377 self .fd .seek (self ._blp_offsets [0 ])
376378
377379 if self ._blp_compression == 1 :
0 commit comments