出于学习目的,我开始研究PNG编码/解码库,因此我想手工实现它的每个部分。
我已经用了很长时间,但是现在有点卡住了。这是我已经成功实现的事情:
这是我卡住的地方。我隐约知道从这里开始的步骤是:
[<R of 1st pixel>, <G of 1st pixel>, <B of 1st pixel>, <R of 2nd pixel>, <G of 2nd pixel>, etc...]
答案 0 :(得分:1)
是的。您可以查看puff.c,它是一个膨胀的实现,其明确目的是指导如何解码deflate流。
图像的每一行都可以使用不同的过滤器,该过滤器在解压缩后的行的第一个字节中指定。
是的,如果一切正常,那么您将有一个像素序列,其中每个像素都是灰度值G,带有alpha通道GA,RGB(红绿蓝,顺序)或RGBA。