file_gif.htm
来自「GIF解码以下是gif图形显示的源代码以下是gif图形显示的源代码」· HTM 代码 · 共 1,068 行 · 第 1/5 页
HTM
1,068 行
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
<title>GIF文档</title>
</head>
<body link="#800080">
<table border="0" width="100%" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF">
<tr>
<td width="33%"></td>
</tr>
<tr>
<td width="33%"><table border="0" width="100%" cellspacing="1" cellpadding="0"
bgcolor="#FF0000">
<tr>
<td width="100%" bgcolor="#FFD76E"><table border="1" width="100%" cellspacing="3"
cellpadding="0" bgcolor="#FDF3E1" bordercolor="#FDF3E1" bordercolorlight="#FDF3E1"
bordercolordark="#FDF3E1">
<tr>
<td width="100%" colspan="4"><p align="right">转载自“<a href="http://fan.web600.com">狂热者</a>”网站</td>
</tr>
<tr>
<td width="100%" colspan="4"><p align="right">作者:<a href="mailto:fanatic@china.com">foenix</a></td>
</tr>
<tr>
<td width="100%" colspan="4"><p align="right">日期:2000-8-21</td>
</tr>
<tr>
<td width="100%" colspan="4"><p align="center"> </td>
</tr>
<tr>
<td width="0" rowspan="3"> </td>
<td width="100%" colspan="2"><p align="center"><small><br>
</small><strong><big><big>GIF文档</big></big><br>
<font color="#FF0000"><big><big><big><big>ˉˉˉˉˉˉ</big></big></big></big></font></strong></p>
<p align="center"><strong>1.概述</strong><br>
<font color="#FF0000">~~~~~~~~</font></p>
<p align="left"><small> GIF(Graphics Interchange Format,图形交换格式)文件是由</small>
CompuServe<small>公司开发的图形文件格式,版权所有,任何商业目的使用均须</small>
CompuServe<small>公司授权。</small><br>
<small> GIF图象是基于颜色列表的(存储的数据是该点的颜色对应于颜色列表的索引值),最多只支持8位(256色)。GIF文件内部分成许多存储块,用来存储多幅图象或者是决定图象表现行为的控制块,用以实现动画和交互式应用。GIF文件还通过LZW压缩算法压缩图象数据来减少图象尺寸(关于<a
href="#2.LZW算法和GIF数据压缩">LZW算法和GIF数据压缩>>...</a>)。</small></p>
<p align="center"><strong>2.GIF文件存储结构</strong><br>
<font color="#FF0000">~~~~~~~~~~~~~~~~~~~</font></p>
<p><small> GIF文件内部是按块划分的,包括控制块( Control Block
)和数据块(</small><font SIZE="2">Data Sub-blocks</font><small>)两种。控制块是控制数据块行为的,根据不同的控制块包含一些不同的控制参数;<a
name="数据块">数据块</a>只包含一些8-bit的字符流,由它前面的控制块来决定它的功能,每个数据块大小从0到255个字节,数据块的第一个字节指出这个数据块大小(字节数),计算数据块的大小时不包括这个字节,所以一个空的数据块有一个字节,那就是数据块的大小0x00。下表是一个数据块的结构:</small></p>
<table border="0" width="100%" cellpadding="0">
<tr>
<td width="10" align="right">BYTE</td>
<td width="10" align="center">7</td>
<td width="10" align="center">6</td>
<td width="10" align="center">5</td>
<td width="10" align="center">4</td>
<td width="10" align="center">3</td>
<td width="10" align="center">2</td>
<td width="10" align="center">1</td>
<td width="10" align="center">0</td>
<td width="70%">BIT</td>
</tr>
<tr>
<td width="10" align="right">0</td>
<td width="80" align="center" colspan="8" bgcolor="#BDCB85"><p align="center"><small>块大小</small></td>
<td width="70%"><small>Block Size -
块大小,不包括这个这个字节(不计算块大小自身)</small></td>
</tr>
<tr>
<td width="10" align="right">1</td>
<td width="80" align="center" colspan="8" bgcolor="#BDCB85"></td>
<td width="70%" rowspan="5"><small>Data Values - 块数据,8-bit的字符串</small></td>
</tr>
<tr>
<td width="10" align="right">2</td>
<td width="80" align="center" colspan="8" bgcolor="#BDCB85"></td>
</tr>
<tr>
<td width="10" align="right">...</td>
<td width="80" align="center" colspan="8" bgcolor="#BDCB85"></td>
</tr>
<tr>
<td width="10" align="right">254</td>
<td width="80" align="center" colspan="8" bgcolor="#BDCB85"></td>
</tr>
<tr>
<td width="10" align="right">255</td>
<td width="80" align="center" colspan="8" bgcolor="#BDCB85"></td>
</tr>
</table>
<p><small> 一个GIF文件的结构可分为文件头(File Header)、GIF数据流(GIF
Data Stream)和文件终结器(Trailer)三个部分。文件头包含GIF文件署名(Signature)和版本号(Version);GIF数据流由控制标识符、图象块(Image
Block)和其他的一些扩展块组成;文件终结器只有一个值为0x3B的字符(';')表示文件结束。下表显示了一个GIF文件的组成结构:</small></p>
<table border="0" width="100%" cellspacing="3" cellpadding="0">
<tr>
<td align="center"></td>
<td bgcolor="#BDCB85" align="center" colspan="2"><small>GIF署名</small></td>
<td bgcolor="#BDCB85" align="center" rowspan="2"><small>文件头</small></td>
<td rowspan="2"></td>
</tr>
<tr>
<td align="center"></td>
<td bgcolor="#BDCB85" align="center" colspan="2"><small>版本号</small></td>
</tr>
<tr>
<td align="center"></td>
<td bgcolor="#BDCB85" align="center" colspan="2"><small>逻辑屏幕标识符</small></td>
<td bgcolor="#BDCB85" align="center" rowspan="8"><small>GIF数据流</small></td>
<td></td>
</tr>
<tr>
<td align="center"></td>
<td bgcolor="#BDCB85" align="center" colspan="2"><small>全局颜色列表</small></td>
<td></td>
</tr>
<tr>
<td align="center"></td>
<td bgcolor="#BDCB85" align="center" colspan="2"><small>...</small></td>
<td></td>
</tr>
<tr>
<td align="center"></td>
<td bgcolor="#BDCB85" align="center"><small>图象标识符</small></td>
<td bgcolor="#BDCB85" align="center" rowspan="4"><small>图象块</small></td>
<td rowspan="2">
</td>
</tr>
<tr>
<td align="center"></td>
<td bgcolor="#BDCB85" align="center"><small>图象局部颜色列表图</small></td>
</tr>
<tr>
<td align="center" rowspan="2">
</td>
<td bgcolor="#BDCB85" align="center" rowspan="2"><small>基于颜色列表的图象数据</small></td>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td align="center"></td>
<td bgcolor="#BDCB85" align="center" colspan="2"><small>...</small></td>
<td></td>
</tr>
<tr>
<td align="center"></td>
<td bgcolor="#BDCB85" align="center" colspan="2"><small>GIF结尾</small></td>
<td bgcolor="#BDCB85" align="center"><small>文件结尾</small></td>
<td></td>
</tr>
</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 border="0" width="100%" cellpadding="0">
<tr>
<td align="center">BYTE</td>
<td align="center">7</td>
<td align="center">6</td>
<td align="center">5</td>
<td align="center">4</td>
<td align="center">3</td>
<td align="center">2</td>
<td align="center">1</td>
<td align="center">0</td>
<td>BIT</td>
</tr>
<tr>
<td align="center">1</td>
<td align="center" colspan="8" bgcolor="#BDCB85"><small>'G'</small></td>
<td rowspan="3"><small>GIF文件标识</small></td>
</tr>
<tr>
<td align="center">2</td>
<td align="center" colspan="8" bgcolor="#BDCB85"><small>'I'</small></td>
</tr>
<tr>
<td align="center">3</td>
<td align="center" colspan="8" bgcolor="#BDCB85"><small>'F'</small></td>
</tr>
<tr>
<td align="center">4</td>
<td align="center" colspan="8" bgcolor="#BDCB85"><small>'8'</small></td>
<td rowspan="3"><small>GIF文件版本号:87a - 1987年5月</small><br>
<small> 89a - 1989年7月</small></td>
</tr>
<tr>
<td align="center">5</td>
<td align="center" colspan="8" bgcolor="#BDCB85"><small>'7'或'9'</small></td>
</tr>
<tr>
<td align="center">6</td>
<td align="center" colspan="8" bgcolor="#BDCB85"><small>'a'</small></td>
</tr>
</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 border="0" width="100%" cellpadding="0" cellspacing="3">
<tr>
<td align="right">BYTE</td>
<td align="center">7</td>
<td align="center">6</td>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?