class Header(object): def __init__(self, data): self.is_compressed = data[0] == 'C' self.version = ord(data[3]) self.file_size = unpack('<L', data[4:8])[0] if self.is_compressed: data = data[:8] + zlib.decompress(data[8:]) self.data = data self.frame_size = Rect(islice(data, 8, None)) index = 8 + self.frame_size.tell() self.frame_rate = unpack('<H', data[index:index + 2])[0] / 256.0 self.frame_count = unpack('<H', data[index + 2:index + 4])[0] self.end = index + 4 @property def decompressed_data(self): return self.data def tell(self): """ヘッダが占めるバイト数を返す""" return self.end