我使用gimp将图像导出到tga图像中,同时使用rle实现tga纹理的解析器。从十六进制编辑器中剪切出来,以便更好地理解:
(1) 83 06 06 0B FF
(2) 00 06 06 0A FF
(3) 83 05 05 09 FF
根据规范,数据包1重复颜色06 06 0B FF
(某种黑色)3次,因为0x83
的0-6位等于3,第7位是rle的标志包。与包3相同,是颜色05 05 0 FF
的3倍。
但是数据包2意味着什么?因为第7位缺少标志,它应该是原始数据包,但它没有任何长度?!
在tga文件中使用零大小的原始数据包有什么用?
提前致谢
答案 0 :(得分:0)
几个小时后我终于找到了解决方案, 数据包内部给出的大小为-1,因此如果它表示大小为零,则表示数据包的总大小为1. Lil'有点棘手,但是合理。