png IDAT块减压

时间:2019-01-29 19:08:33

标签: png python-3.7

我正在尝试实现PNG阅读器。

为此,我读取了 input_image.png (640x480px)的 IHDR 数据块,并通过读取获得了以下值

width 640 height 480 color depth 8 color type  compression method 0 filter method 0 interlace mthod 0

之后,我尝试使用以下代码解压缩 IDAT 数据块:

def read_chunk(chunk_type,data_chunk)
    if chunk_type == 'IDAT':
        img_dec = zlib.decompress(data_chunk, wbits=+15)
        image = np.frombuffer(img_dec, np.uint8)
        image.reshape(640, 480, 3)

但是尺寸与我的解释不一致,如果我打印image_dec缓冲区的大小,它对应的是 922080 ,但是我希望缓冲区大小为 640x480x3 = 921600 ,所以解压缩的缓冲区中还有 480 个额外的字节,为什么?

0 个答案:

没有答案