我已经有一个zlib编码的图像数据流(取自PDF / FlateDecode标签)。我还得到了像素的宽度和高度以及颜色深度(8 bpp)。数据是打包的RGB。 现在我想将其保存为PNG图像(我认为默认的压缩方法也是ZLIB?)。 我尝试手动添加PNG标头和IDAT标头,但它不起作用。 有谁有想法,如何正确吗? (libpng?)
目标系统的RAM资源非常有限,因此解码zlib数据并使用libpng重新编码是不可能的。
答案 0 :(得分:3)
您需要解压缩,重新格式化PNG数据并重新压缩。在PNG文件中压缩的图像数据不仅仅是原始RGB数据。每the specification,图像的每一行前面都有一个过滤字节,它指定该行与先前数据的区别(或不同)。即使您没有进行差分,也需要该字节来表示。但是,使用其中一种过滤模式可以获得更好的压缩效果。