def main(filename):
width, height, pixels, meta = png.Reader(filename=filename).read()
image_bytes = open(filename, "rb").read()
all_idat_pos = tpng.find_list_in_list(image_bytes, b'IDAT')
if len(all_idat_pos) != 1:
raise Exception(f"IDAT count is {len(all_idat_pos)}")
idat_pos = all_idat_pos[0]
original_idat_len = struct.unpack("!I", image_bytes[idat_pos - 4: idat_pos])[0]
idat_content = image_bytes[idat_pos + 4: idat_pos + 4 + original_idat_len]
uncompressed = zlib.decompress(idat_content)
filter_bytes = [uncompressed[i * (len(uncompressed) // height)] for i in range(0, height)]
result = decode5(filter_bytes)
result_str = ''.join(chr(i) for i in result)
print(f'"{result_str}"')
评论列表
文章目录