多IDAT段的PNG文件格式是怎样的?

Kernel_Don 2007-03-05 01:43:49
现需要生成一无压缩的png文件。
在网上找到一文:《PNG文件结构分析之二(在手机上生成PNG文件)》(可在google搜到)
其中对于IDAT chunk中的无压缩的LZ77压缩块格式不太清楚,
字节 意义
0~2 压缩信息,固定为0x78, 0xda, 0x1
3~6 压缩块的LEN和NLEN信息
压缩的数据
最后4字节 Adler32信息

对于其中固定为0x78, 0xda, 0x1是什么意思?是否在所有场合都是固定的?
NLEN是LEN的补码,LEN和NLEN各占两字节,所以LEN最大值是64K。

我已按这个格式正确生成了png文件,用常用的看图软件能正常显示,但只能是64k以下,因为上面的LEN的限制。
查阅其他资料可知,PNG文件可以有多个IDAT chunk, 但如何组织多个IDAT构成PNG文件则没有详细说明。
作了如下实验,生成的文件用看图软件打开时提示有错。
一个50行50列像素的图,分为连续的两个IDAT存数据,第一个存25行50列(即图像的上半截),另一个IDAT存25行50列(即图像的下半截)。每个IDAT CHUNK的无压缩的LZ77压缩块都以0x78, 0xda, 0x1开头,然后是LEN、NLEN,然后是数据,然后是Adler32信息。

请问错在哪里?谁知道如何建立多IDAT的PNG文件?
...全文
606 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
saliors 2007-03-05
  • 打赏
  • 举报
回复
还有之一啊,最后还有png的资料连接,仔细研究一下官方文件,里面应该有说的。


http://www.zyou.cn/ly/topic.do?forumID=20&postID=1134&replyID=0&skin=1&saveSkin=true&pages=1&replyNum=

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧