也问关于GIF动画显示的问题
韧恒 2004-08-28 01:01:56 在网上找了很多关于GIF格式的说明,在这里也搜了N次关于GIF的帖子,但仍有一问题没有解决。请各路高手赐教!问题如下:
按照有关说明,在一图像块的前面有一个“图形控制扩展块”,用来控制跟在它后面的个图象的渲染形式。其中整个块的第4个字节是一个标志域,这个字节的第一位是透明色标志,第二位是用户输入标志,第三、四、五位定义处置图形的方法,按我的理解,第一位的透明色标志确定了这幅图像是否使用透明方式来显示图像。
问题是第3、4、5位的值我没法理解,这也正是我想问的问题。
按相关说明解释如下,当这三位的值为
0 - 不使用处置方法
1 - 不处置图形
为0和1时,是否可以理解为不理会这个标志,直接绘制图形?那么这两值有什么不同吗?在实际我分解的图像中好象还没遇到过值为0的情况。
2 - 回复到背景色
这是令我最为费解的地方。按我的理解,是在绘制此图象前将当前背景设置为背景色,但是当我按着这种方法绘图时,有些GIF却得不到正确的结果。最典型的是QQ中的情符号,如face目录中的26.gif,它的一些帧在使用此方绘制时,总是不该透明的部分也被透明了,即显示为背景色,如果不恢复背景色直接绘制就会得到正确的结果。不是为什么?是我的理解有误,还是在GIF数据中的其他地方还有控制此问题的数据?
3 - 回复到先前状态
这个我也不能理解,先前状态是指什么?如果是前一帧的状态,那么它和0,1不又一样了?
4-7 - 自定义用,这个到是可以理解的。
还有,在实际测试中,找了很多GIF图像,这个值好象只有1和2两种情形,0和3我就没遇到过。对于以上问题还请各位高手赐教,小弟不胜感激。