如何将 zlib 流转换为 PNG?
How to convert a zlib stream to PNG?
我已经有一个zlib编码的图像数据流(取自PDF/FlateDecode标签(。我还得到了以像素为单位的宽度和高度以及颜色深度(8 bpp(。数据打包为 RGB。 现在我想将其另存为 PNG 图像(我认为哪种默认压缩方法也是 ZLIB? 我尝试手动添加 PNG 标头和 IDAT 标头,但它不起作用。 有没有人知道,如何正确做到这一点?(利宾?
目标系统的 RAM 资源非常有限,因此解码 zlib 数据并使用 libpng 重新编码是不可能的。
您需要解压缩、重新格式化 PNG 的数据并重新压缩。在 PNG 文件中压缩的图像数据不仅仅是原始 RGB 数据。根据规范,图像的每一行前面都有一个过滤器字节,该字节指定该行如何与以前的数据区别(或不差异(。即使你不做差异,你也需要那个字节来表示。但是,使用其中一种过滤模式,您将获得更好的压缩。
相关文章:
- 防止主数据类型C++的隐式转换
- 使用 stbi_write_png,如何将 0 和 1 的矩形字节数组转换为单色 png 文件?
- 将位图 (bmp) 转换为具有透明度的 png (Windows c++)
- 如何将 2d 数组转换为 svg 或 png 格式的数独图像?
- MFC如何将带有透明属性的PNG转换为HBITMAP
- 从.ppm转换为.png文件
- 如何使用我的C程序将PDF转换为图像格式(jpeg,png,..)
- C++ 将 PNG 转换为 base64
- 如何使用OPENCV C 将24位转换为8位深度PNG图像
- 如何在 Windows 8 上的 C++ 中将.jpg转换为.png
- 将原始位图转换为QT中的png
- 将 PNG 加载代码转换为使用 FILE 而不是本地资源
- 如何在生成文件中将.png列表转换为 pdf 列表
- 原始位图数据转换为 JPEG 或 PNG C++
- 在 cocos2dx 中将迷宫 png 转换为实际可玩的迷宫
- 将服务器响应(std::string)转换为png文件
- 将原始mono8数据转换为PNG时,加快PNG++的速度
- 将(文本文件)转换为任何格式的图像(png)C++
- 将bmp转换为png -访问违规写入位置
- 当将透明png图像转换为位图时,它不会保留透明度