我最近几天一直在编写自己的png编码器,我注意到png文件中有一些非常奇怪的行为。我已经用pngcheck对png文件进行了调试,并说这一切都很好,就像它应该的那样,尽管如此,我写了1111x1111像素的数据而且只有8个。(我使用多个IDAT)大块)之后我尝试增加我的IDAT块大小,这给了我更多的像素,但仍然没有填满它应该的整个区域,换句话说,我有更多的IDAT块,我越多丢失数据。现在,我不小心生成了一个带有最大尺寸deflate块的.png。并且该deflate块保持65025像素的数据。那些像素每个都有相同的值,但我最终得到了一些非常奇怪的东西:
有人可以解释发生了什么吗?