Project1

标题: 有对png格式了解的么?IDAT段内的len怎么算? [打印本页]

作者: 尘羽泯    时间: 2011-10-1 12:53
标题: 有对png格式了解的么?IDAT段内的len怎么算?
本帖最后由 尘羽泯 于 2011-10-1 16:43 编辑

请问png格式图片IDAT数据块中的len具体怎么算?不是索引模式的图片,是RGBA数据流,知道图片的宽度和高度,知道RGBA数据。len怎么算呢?IDAT的前三个字节固定,然后是len和nlen,nlen就是len的补码(其实我一想到这个就觉得脑残,浪费了2个字节不说还影响计算效率,而且后面已经有Adler和CRC双重校验了)。那么len是怎么算的呢?一张59*126的RGBA图片,打开一看IDAT段内的len是237,跟59和126似乎找不到什么关系嘛。
作者: Remainfree    时间: 2011-10-1 15:24
提示: 作者被禁止或删除 内容自动屏蔽
作者: 尘羽泯    时间: 2011-10-1 16:06
Remainfree 发表于 2011-10-1 15:24
禁止重贴:http://zhidao.baidu.com/question/325177475.html
                  http://tieba.baidu.com/f ...

你牛×  - -b、、、
作者: chaochao    时间: 2011-10-1 17:42
楼主加油吧,虽然我觉得研究这个没什么用。嘛……不过能搞懂一个别人不懂的东西,何乐而不为呢?
作者: yangff    时间: 2011-10-2 20:05
本帖最后由 yangff 于 2011-10-2 20:08 编辑

sizeof(Zlib(data).length).pack("N")
如果你说的是png_idat段的header(\x49\x44\x41\x54)前面那玩意的话……




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1