📄 gif格式详解 - dotnet男孩社区-aspxboy_com-提供大量_net技术文章,dotnet技术讨论区 - powered by huobazi~.htm
字号:
<TD align=middle width=10>0</TD>
<TD width="70%">BIT</TD></TR>
<TR>
<TD align=right width=10>0</TD>
<TD align=middle width=80 bgColor=#bdcb85 colSpan=8>
<P align=center><SMALL>块大小</SMALL> </P></TD>
<TD width="70%"><SMALL>Block Size - 块大小,不包括这个这个字节(不计算块大小自身)</SMALL>
</TD></TR>
<TR>
<TD align=right width=10>1</TD>
<TD align=middle width=80 bgColor=#bdcb85 colSpan=8></TD>
<TD width="70%" rowSpan=5><SMALL>Data Values - 块数据,8-bit的字符串</SMALL>
</TD></TR>
<TR>
<TD align=right width=10>2</TD>
<TD align=middle width=80 bgColor=#bdcb85 colSpan=8></TD></TR>
<TR>
<TD align=right width=10>...</TD>
<TD align=middle width=80 bgColor=#bdcb85 colSpan=8></TD></TR>
<TR>
<TD align=right width=10>254</TD>
<TD align=middle width=80 bgColor=#bdcb85 colSpan=8></TD></TR>
<TR>
<TD align=right width=10>255</TD>
<TD align=middle width=80 bgColor=#bdcb85
colSpan=8></TD></TR></TBODY></TABLE>
<P><SMALL> 一个GIF文件的结构可分为文件头(File Header)、GIF数据流(GIF Data
Stream)和文件终结器(Trailer)三个部分。文件头包含GIF文件署名(Signature)和版本号(Version);GIF数据流由控制标识符、图象块(Image
Block)和其他的一些扩展块组成;文件终结器只有一个值为0x3B的字符(';')表示文件结束。下表显示了一个GIF文件的组成结构:</SMALL>
</P>
<TABLE cellSpacing=3 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD align=middle></TD>
<TD align=middle bgColor=#bdcb85 colSpan=2><SMALL>GIF署名</SMALL> </TD>
<TD align=middle bgColor=#bdcb85 rowSpan=2><SMALL>文件头</SMALL> </TD>
<TD rowSpan=2></TD></TR>
<TR>
<TD align=middle></TD>
<TD align=middle bgColor=#bdcb85 colSpan=2><SMALL>版本号</SMALL> </TD></TR>
<TR>
<TD align=middle></TD>
<TD align=middle bgColor=#bdcb85 colSpan=2><SMALL>逻辑屏幕标识符</SMALL>
</TD>
<TD align=middle bgColor=#bdcb85 rowSpan=8><SMALL>GIF数据流</SMALL> </TD>
<TD></TD></TR>
<TR>
<TD align=middle></TD>
<TD align=middle bgColor=#bdcb85 colSpan=2><SMALL>全局颜色列表</SMALL> </TD>
<TD></TD></TR>
<TR>
<TD align=middle></TD>
<TD align=middle bgColor=#bdcb85 colSpan=2><SMALL>...</SMALL> </TD>
<TD></TD></TR>
<TR>
<TD align=middle></TD>
<TD align=middle bgColor=#bdcb85><SMALL>图象标识符</SMALL> </TD>
<TD align=middle bgColor=#bdcb85 rowSpan=4><SMALL>图象块</SMALL> </TD>
<TD rowSpan=2>
</TD></TR>
<TR>
<TD align=middle></TD>
<TD align=middle bgColor=#bdcb85><SMALL>图象局部颜色列表图</SMALL> </TD></TR>
<TR>
<TD align=middle rowSpan=2>
</TD>
<TD align=middle bgColor=#bdcb85
rowSpan=2><SMALL>基于颜色列表的图象数据</SMALL> </TD>
<TD></TD></TR>
<TR>
<TD></TD></TR>
<TR>
<TD align=middle></TD>
<TD align=middle bgColor=#bdcb85 colSpan=2><SMALL>...</SMALL> </TD>
<TD></TD></TR>
<TR>
<TD align=middle></TD>
<TD align=middle bgColor=#bdcb85 colSpan=2><SMALL>GIF结尾</SMALL> </TD>
<TD align=middle bgColor=#bdcb85><SMALL>文件结尾</SMALL> </TD>
<TD></TD></TR></TBODY></TABLE>
<P align=left><SMALL> 下面就具体介绍各个部分:</SMALL> </P>
<P align=left><STRONG><SMALL>文件头部分(Header)</SMALL> <BR></STRONG><FONT
color=#ff0000><SMALL>~~~~~~~~~~~~~~~~~</SMALL> </FONT></P>
<P align=left><SMALL>GIF署名(Signature)和版本号(Version)</SMALL> <BR><FONT
color=#ff0000>~~~~~~~~~~~~~~~~~~~~~~~~~~~</FONT>
<BR><SMALL>GIF署名用来确认一个文件是否是GIF格式的文件,这一部分由三个字符组成:"GIF";文件版本号也是由三个字节组成,可以为"87a"或"89a".具体描述见下表:</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 align=middle>0</TD>
<TD>BIT</TD></TR>
<TR>
<TD align=middle>1</TD>
<TD align=middle bgColor=#bdcb85 colSpan=8><SMALL>'G'</SMALL> </TD>
<TD rowSpan=3><SMALL>GIF文件标识</SMALL> </TD></TR>
<TR>
<TD align=middle>2</TD>
<TD align=middle bgColor=#bdcb85 colSpan=8><SMALL>'I'</SMALL> </TD></TR>
<TR>
<TD align=middle>3</TD>
<TD align=middle bgColor=#bdcb85 colSpan=8><SMALL>'F'</SMALL> </TD></TR>
<TR>
<TD align=middle>4</TD>
<TD align=middle bgColor=#bdcb85 colSpan=8><SMALL>'8'</SMALL> </TD>
<TD rowSpan=3><SMALL>GIF文件版本号:87a - 1987年5月</SMALL>
<BR><SMALL> 89a - 1989年7月</SMALL> </TD></TR>
<TR>
<TD align=middle>5</TD>
<TD align=middle bgColor=#bdcb85 colSpan=8><SMALL>'7'或'9'</SMALL>
</TD></TR>
<TR>
<TD align=middle>6</TD>
<TD align=middle bgColor=#bdcb85 colSpan=8><SMALL>'a'</SMALL>
</TD></TR></TBODY></TABLE>
<P align=left><STRONG><SMALL>GIF数据流部分(GIF Data Stream)</SMALL>
</STRONG><BR><STRONG><FONT
color=#ff0000><SMALL>~~~~~~~~~~~~~~~~~~~~~~~~~~~~</SMALL>
</FONT></STRONG></P>
<P align=left><SMALL>逻辑屏幕标识符(Logical Screen Descriptor)</SMALL> <BR><FONT
color=#ff0000><SMALL>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</SMALL>
</FONT><BR><SMALL>这一部分由7个字节组成,定义了GIF图象的大小(Logical Screen Width &
Height)、颜色深度(Color Bits)、背景色(Blackground Color Index)以及有无全局颜色列表(Global
Color Table)和颜色列表的索引数(Index Count),具体描述见下表:</SMALL> </P>
<TABLE cellSpacing=3 cellPadding=0 width=550 border=0>
<TBODY>
<TR>
<TD align=right>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 align=middle>0</TD>
<TD align=left>BIT</TD>
<TD align=middle></TD></TR>
<TR>
<TD align=right>1</TD>
<TD align=middle bgColor=#bdcb85 colSpan=8
rowSpan=2><SMALL>逻辑屏幕宽度</SMALL> </TD>
<TD align=left colSpan=2 rowSpan=2><SMALL>像素数,定义GIF图象的宽度</SMALL>
</TD></TR>
<TR>
<TD align=right>2</TD></TR>
<TR>
<TD align=right>3</TD>
<TD align=middle bgColor=#bdcb85 colSpan=8
rowSpan=2><SMALL>逻辑屏幕高度</SMALL> </TD>
<TD align=left colSpan=2 rowSpan=2><SMALL>像素数,定义GIF图象的高度</SMALL>
</TD></TR>
<TR>
<TD align=right>4</TD></TR>
<TR>
<TD align=right>5</TD>
<TD align=middle bgColor=#bdcb85>m</TD>
<TD align=middle bgColor=#bdcb85 colSpan=3>cr</TD>
<TD align=middle bgColor=#bdcb85>s</TD>
<TD align=middle bgColor=#bdcb85 colSpan=3>pixel</TD>
<TD align=left colSpan=2><A
href="http://asp.6to23.com/iseesoft/devdoc/imgdoc/gif.htm#m"><SMALL>具体描述见下...</SMALL>
</A></TD></TR>
<TR>
<TD align=right>6</TD>
<TD align=middle bgColor=#bdcb85 colSpan=8><SMALL>背景色</SMALL> </TD>
<TD align=left
colSpan=2><SMALL>背景颜色(在全局颜色列表中的索引,如果没有全局颜色列表,该值没有意义)</SMALL> </TD></TR>
<TR>
<TD align=right>7</TD>
<TD align=middle bgColor=#bdcb85 colSpan=8><SMALL>像素宽高比</SMALL> </TD>
<TD align=left colSpan=2><SMALL>像素宽高比(Pixel Aspect Radio)</SMALL>
</TD></TR></TBODY></TABLE>
<P align=left><SMALL><A name=m>m</A> - 全局颜色列表标志(Global Color Table
Flag),当置位时表示有全局颜色列表,pixel值有意义.</SMALL> <BR><SMALL>cr - 颜色深度(Color
ResoluTion),cr+1确定图象的颜色深度.</SMALL> <BR>s - <SMALL>分类标志(Sort
Flag),如果置位表示全局颜色列表分类排列.</SMALL><BR><SMALL>pixel -
全局颜色列表大小,pixel+1确定颜色列表的索引数(2的pixel+1次方)</SMALL>.</P>
<P align=left><SMALL>全局颜色列表(Global Color Table)</SMALL> <BR><FONT
color=#ff0000><SMALL>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</SMALL>
</FONT><BR><SMALL>全局颜色列表必须紧跟在逻辑屏幕标识符后面,每个颜色列表索引条目由三个字节组成,按R、G、B的顺序排列。</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 align=middle>0</TD>
<TD>BIT</TD></TR>
<TR>
<TD align=middle>1</TD>
<TD align=middle bgColor=#bdcb85 colSpan=8><SMALL>索引1的红色值</SMALL>
</TD>
<TD></TD></TR>
<TR>
<TD align=middle>2</TD>
<TD align=middle bgColor=#bdcb85 colSpan=8><SMALL>索引1的绿色值</SMALL>
</TD>
<TD></TD></TR>
<TR>
<TD align=middle>3</TD>
<TD align=middle bgColor=#bdcb85 colSpan=8><SMALL>索引1的蓝色值</SMALL>
</TD>
<TD></TD></TR>
<TR>
<TD align=middle>4</TD>
<TD align=middle bgColor=#bdcb85 colSpan=8><SMALL>索引2的红色值</SMALL>
</TD>
<TD></TD></TR>
<TR>
<TD align=middle>5</TD>
<TD align=middle bgColor=#bdcb85 colSpan=8><SMALL>索引2的绿色值</SMALL>
</TD>
<TD></TD></TR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -