📄 gif格式详解 - dotnet男孩社区-aspxboy_com-提供大量_net技术文章,dotnet技术讨论区 - powered by huobazi~.htm
字号:
<TR>
<TD align=middle>6</TD>
<TD align=middle bgColor=#bdcb85 colSpan=8><SMALL>索引2的蓝色值</SMALL>
</TD>
<TD></TD></TR>
<TR>
<TD align=middle>7</TD>
<TD align=middle bgColor=#bdcb85 colSpan=8>...</TD>
<TD>
</TD></TR></TBODY></TABLE>
<P><SMALL>图象标识符(Image Descriptor)</SMALL> <BR><FONT
color=#ff0000><SMALL>~~~~~~~~~~~~~~~~~~~~~~~~~</SMALL>
</FONT><BR><SMALL>一个GIF文件内可以包含多幅图象,一幅图象结束之后紧接着下是一幅图象的标识符,图象标识符以0x2C(',')字符开始,定义紧接着它的图象的性质,包括图象相对于逻辑屏幕边界的偏移量、图象大小以及有无局部颜色列表和颜色列表大小,由10个字节组成:</SMALL>
</P>
<TABLE cellPadding=0 width=550 border=0>
<TBODY>
<TR>
<TD align=middle>BYTE</TD>
<TD align=middle>7</TD>
<TD align=middle>6</TD>
<TD align=middle>5</TD>
<TD align=middle>4</TD>
<TD align=middle>3</TD>
<TD align=middle>2</TD>
<TD align=middle>1</TD>
<TD>0</TD>
<TD>BIT</TD>
<TD></TD></TR>
<TR>
<TD align=middle>1</TD>
<TD align=middle bgColor=#bdcb85>0</TD>
<TD align=middle bgColor=#bdcb85>0</TD>
<TD align=middle bgColor=#bdcb85>1</TD>
<TD align=middle bgColor=#bdcb85>0</TD>
<TD align=middle bgColor=#bdcb85>1</TD>
<TD align=middle bgColor=#bdcb85>1</TD>
<TD align=middle bgColor=#bdcb85>0</TD>
<TD bgColor=#bdcb85>0</TD>
<TD colSpan=2><SMALL>图象标识符开始,固定值为','</SMALL> </TD></TR>
<TR>
<TD align=middle>2</TD>
<TD align=middle bgColor=#bdcb85 colSpan=8
rowSpan=2><SMALL>X方向偏移量</SMALL> </TD>
<TD colSpan=2 rowSpan=8><SMALL>必须限定在逻辑屏幕尺寸范围内</SMALL> </TD></TR>
<TR>
<TD align=middle>3</TD></TR>
<TR>
<TD align=middle>4</TD>
<TD align=middle bgColor=#bdcb85 colSpan=8
rowSpan=2><SMALL>Y方向偏移量</SMALL> </TD></TR>
<TR>
<TD align=middle>5</TD></TR>
<TR>
<TD align=middle>6</TD>
<TD align=middle bgColor=#bdcb85 colSpan=8
rowSpan=2><SMALL>图象宽度</SMALL> </TD></TR>
<TR>
<TD align=middle>7</TD></TR>
<TR>
<TD align=middle>8</TD>
<TD align=middle bgColor=#bdcb85 colSpan=8
rowSpan=2><SMALL>图象高度</SMALL> </TD></TR>
<TR>
<TD align=middle>9</TD></TR>
<TR>
<TD align=middle>10</TD>
<TD align=middle bgColor=#bdcb85><SMALL>m</SMALL> </TD>
<TD align=middle bgColor=#bdcb85><SMALL>i</SMALL> </TD>
<TD align=middle bgColor=#bdcb85><SMALL>s</SMALL> </TD>
<TD align=middle bgColor=#bdcb85 colSpan=2><SMALL>r</SMALL> </TD>
<TD align=middle bgColor=#bdcb85 colSpan=3><SMALL>pixel</SMALL> </TD>
<TD colSpan=2><SMALL>m - 局部颜色列表标志(Local Color Table Flag)</SMALL>
</TD></TR>
<TR>
<TD align=middle></TD>
<TD align=middle></TD>
<TD align=middle></TD>
<TD align=middle></TD>
<TD align=middle></TD>
<TD align=middle></TD>
<TD align=middle colSpan=3></TD>
<TD
colSpan=2><SMALL>置位时标识紧接在图象标识符之后有一个局部颜色列表,供紧跟在它之后的一幅图象使用;值否时使用全局颜色列表,忽略pixel值。</SMALL>
<BR><SMALL>i - <A name=交织标志>交织标志</A>(Interlace
Flag),置位时图象数据使用交织方式排列(<A
href="http://asp.6to23.com/iseesoft/devdoc/imgdoc/gif.htm#连续的和交织的">详细描述...</A>),否则使用顺序排列。</SMALL>
<BR>s - <SMALL>分类标志(Sort Flag),如果置位表示紧跟着的局部颜色列表分类排列.</SMALL><BR>r
-<SMALL> 保留,必须初始化为0</SMALL>.<BR><SMALL>pixel - 局部颜色列表大小(Size of
Local Color Table),pixel+1就为颜色列表的位数</SMALL></TD></TR></TBODY></TABLE>
<P><SMALL>局部颜色列表(Local Color Table)</SMALL> <BR><FONT
color=#ff0000>~~~~~~~~~~~~~~~~~~~~~~~~~~</FONT>
<BR><SMALL>如果上面的局部颜色列表标志置位的话,则需要在这里(紧跟在图象标识符之后)定义一个局部颜色列表以供紧接着它的图象使用,注意使用前应线保存原来的颜色列表,使用结束之后回复原来保存的全局颜色列表。如果一个GIF文件即没有提供全局颜色列表,也没有提供局部颜色列表,可以自己创建一个颜色列表,或使用系统的颜色列表。局部颜色列表的排列方式和全局颜色列表一样:RGBRGB......</SMALL>
</P>
<P><SMALL>基于颜色列表的图象数据(Table-Based Image Data)</SMALL> <BR><FONT
color=#ff0000>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</FONT>
<BR><SMALL>由两部分组成:LZW编码长度(LZW Minimum Code Size)和图象数据(Image Data)。</SMALL>
</P>
<TABLE cellPadding=0 width=550 border=0>
<TBODY>
<TR>
<TD align=right><SMALL>BYTE</SMALL> </TD>
<TD align=middle><SMALL>7</SMALL> </TD>
<TD align=middle><SMALL>6</SMALL> </TD>
<TD align=middle><SMALL>5</SMALL> </TD>
<TD align=middle><SMALL>4</SMALL> </TD>
<TD align=middle><SMALL>3</SMALL> </TD>
<TD align=middle><SMALL>2</SMALL> </TD>
<TD align=middle><SMALL>1</SMALL> </TD>
<TD align=middle><SMALL>0</SMALL> </TD>
<TD><SMALL>BIT</SMALL> </TD></TR>
<TR>
<TD align=right><SMALL>1</SMALL> </TD>
<TD align=middle bgColor=#bdcb85 colSpan=8><SMALL>LZW编码长度</SMALL>
</TD>
<TD><SMALL>LZW编码初始码表大小的位数,详细描述见LZW编码...</SMALL> </TD></TR>
<TR>
<TD align=right rowSpan=3><SMALL>
<P></P></SMALL> </TD>
<TD align=middle bgColor=#bdcb85 colSpan=8><BR>...<BR></TD>
<TD rowSpan=3><SMALL>图象数据,由一个或几个数据块(</SMALL> <A
href="http://asp.6to23.com/iseesoft/devdoc/imgdoc/gif.htm#数据块"><FONT
size=2>Data Sub-blocks</FONT> </A><SMALL>)组成</SMALL> </TD></TR>
<TR>
<TD align=middle bgColor=#bdcb85 colSpan=8><BR><SMALL>数据块</SMALL>
<BR></TD></TR>
<TR>
<TD align=middle bgColor=#bdcb85 colSpan=8><BR><SMALL>...</SMALL>
<BR></TD></TR></TBODY></TABLE>
<P><SMALL>GIF图象数据使用了LZW压缩算法(详细介绍请看后面的<A
href="http://asp.6to23.com/iseesoft/devdoc/imgdoc/gif.htm#2.lzw算法和gif数据压缩">『LZW算法和GIF数据压缩』</A>),大大减小了图象数据的大小。图象数据在压缩前有两种排列格式:<A
name=连续的和交织的>连续的和交织的</A>(由图象标识符的<A
href="http://asp.6to23.com/iseesoft/devdoc/imgdoc/gif.htm#交织标志">交织标志</A>控制)。连续方式按从左到右、从上到下的顺序排列图象的光栅数据;交织图象按下面的方法处理光栅数据:</SMALL>
</P>
<P><SMALL>创建四个通道(pass)保存数据,每个通道提取不同行的数据:</SMALL> <BR><SMALL>第一通道(Pass
1)提取从第0行开始每隔8行的数据;</SMALL> <BR><SMALL>第二通道(Pass 2)提取从第4行开始每隔8行的数据;</SMALL>
<BR><SMALL>第三通道(Pass 3)提取从第2行开始每隔4行的数据;</SMALL> <BR><SMALL>第四通道(Pass
4)提取从第1行开始每隔2行的数据;</SMALL> </P>
<P><SMALL>下面的例子演示了提取交织图象数据的顺序:</SMALL> </P>
<TABLE cellSpacing=0 cellPadding=0 width=550 border=0>
<TBODY>
<TR>
<TD align=middle><SMALL>行</SMALL> </TD>
<TD align=middle><SMALL> 通道1 </SMALL> </TD>
<TD align=middle><SMALL> 通道2 </SMALL> </TD>
<TD align=middle><SMALL> 通道3 </SMALL> </TD>
<TD align=middle><SMALL> 通道4 </SMALL> </TD>
<TD align=middle></TD></TR>
<TR>
<TD align=middle><SMALL>0
--------------------------------------------------------</SMALL> </TD>
<TD align=middle>1</TD>
<TD align=middle></TD>
<TD align=middle></TD>
<TD align=middle></TD>
<TD align=middle></TD></TR>
<TR>
<TD
align=middle><SMALL>1 --------------------------------------------------------</SMALL>
</TD>
<TD align=middle></TD>
<TD align=middle></TD>
<TD align=middle></TD>
<TD align=middle>4</TD>
<TD align=middle></TD></TR>
<TR>
<TD align=middle><SMALL>2
--------------------------------------------------------</SMALL> </TD>
<TD align=middle></TD>
<TD align=middle></TD>
<TD align=middle>3</TD>
<TD align=middle></TD>
<TD align=middle></TD></TR>
<TR>
<TD align=middle><SMALL>3
--------------------------------------------------------</SMALL> </TD>
<TD align=middle></TD>
<TD align=middle></TD>
<TD align=middle></TD>
<TD align=middle>4</TD>
<TD align=middle></TD></TR>
<TR>
<TD align=middle><SMALL>4
--------------------------------------------------------</SMALL> </TD>
<TD align=middle></TD>
<TD align=middle>2</TD>
<TD align=middle></TD>
<TD align=middle></TD>
<TD align=middle></TD></TR>
<TR>
<TD align=middle><SMALL>5
--------------------------------------------------------</SMALL> </TD>
<TD align=middle></TD>
<TD align=middle></TD>
<TD align=middle></TD>
<TD align=middle>4</TD>
<TD align=middle></TD></TR>
<TR>
<TD align=middle><SMALL>6
--------------------------------------------------------</SMALL> </TD>
<TD align=middle></TD>
<TD align=middle></TD>
<TD align=middle>3</TD>
<TD align=middle></TD>
<TD align=middle></TD></TR>
<TR>
<TD align=middle><SMALL>7
--------------------------------------------------------</SMALL> </TD>
<TD align=middle></TD>
<TD align=middle></TD>
<TD align=middle></TD>
<TD align=middle>4</TD>
<TD align=middle></TD></TR>
<TR>
<TD align=middle><SMALL>8
--------------------------------------------------------</SMALL> </TD>
<TD align=middle>1</TD>
<TD align=middle></TD>
<TD align=middle></TD>
<TD align=middle></TD>
<TD align=middle></TD></TR>
<TR>
<TD align=middle><SMALL>9
--------------------------------------------------------</SMALL> </TD>
<TD align=middle></TD>
<TD align=middle></TD>
<TD align=middle></TD>
<TD align=middle>4</TD>
<TD align=middle></TD></TR>
<TR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -