class_docstr: Blizzard Mipmap Format
code: def _read_blp_header(self):
      (self._blp_compression,) = struct.unpack("<i", self.fp.read(4))
  
      (self._blp_encoding,) = struct.unpack("<b", self.fp.read(1))
      (self._blp_alpha_depth,) = struct.unpack("<b", self.fp.read(1))
      (self._blp_alpha_encoding,) = struct.unpack("<b", self.fp.read(1))
      (self._blp_mips,) = struct.unpack("<b", self.fp.read(1))
  
      self._size = struct.unpack("<II", self.fp.read(8))
  
      if self.magic == b"BLP1":
          # Only present for BLP1
          (self._blp_encoding,) = struct.unpack("<i", self.fp.read(4))
          (self._blp_subtype,) = struct.unpack("<i", self.fp.read(4))
  
      self._blp_offsets = struct.unpack("<16I", self.fp.read(16 * 4))
      self._blp_lengths = struct.unpack("<16I", self.fp.read(16 * 4))
  
imports: import struct
  from io import BytesIO
  from .None import Image, ImageFile
label_desc: Use image node_id 2 for calling the BlpImageFile obj's underlying member method code with example usage: obj._read_blp_header() without return types