GDI+中GIF图片的显示
2010-07-25 20:47:04 来源:WEB开发网核心提示:图形文本扩展(Plain Text Extension)这一部分是可选的(需要89a版本),用来绘制一个简单的文本图象,GDI+中GIF图片的显示(6),这一部分由用来绘制的纯文本数据(7-bit ASCII字符)和控制绘制的参数等组成,绘制文本借助于一个文本框(Text Grid)来定义边界,保存应用程序自己定义的数
图形文本扩展(Plain Text Extension)
这一部分是可选的(需要89a版本),用来绘制一个简单的文本图象,这一部分由用来绘制的纯文本数据(7-bit ASCII字符)和控制绘制的参数等组成。绘制文本借助于一个文本框(Text Grid)来定义边界,在文本框中划分多个单元格,每个字符占用一个单元,绘制时按从左到右、从上到下的顺序依次进行, 直到最后一个字符或者占满整个文本框(之后的字符将被忽略,因此定义文本框的大小时应该注意到是否可以容纳整个文本), 绘制文本的颜色索引使用全局颜色列表,没有则可以使用一个已经保存的前一个颜色列表。另外,图形文本扩展块也属于图形块(Graphic Rendering Block),可以在它前面定义图形控制扩展对它的表现形式进一步修改。图形文本扩展的组成:
BYTE | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | BIT |
1 | 扩展块标识 | Extension Introducer - 标识这是一个扩展块,固定值0x21 | |||||||
2 | 图形控制扩展标签 | Plain Text Label - 标识这是一个图形文本扩展块,固定值0x01 | |||||||
3 | 块大小 | Block Size - 块大小,固定值12 | |||||||
4 | 文本框左边界位置 | Text Glid Left Posotion - 像素值,文本框离逻辑屏幕的左边界距离 | |||||||
5 | |||||||||
6 | 文本框上边界位置 | Text Glid Top Posotion - 像素值,文本框离逻辑屏幕的上边界距离 | |||||||
7 | |||||||||
8 | 文本框高度 | Text Glid Width -像素值 | |||||||
9 | |||||||||
10 | 文本框高度 | Text Glid Height - 像素值 | |||||||
11 | |||||||||
12 | 字符单元格宽度 | Character Cell Width - 像素值,单个单元格宽度 | |||||||
13 | 字符单元格高度 | Character Cell Height- 像素值,单个单元格高度 | |||||||
14 | 文本前景色索引 | Text Foreground Color Index - 前景色在全局颜色列表中的索引 | |||||||
15 | 文本背景色索引 | Text Blackground Color Index - 背景色在全局颜色列表中的索引 | |||||||
N |
... |
Plain Text Data - 一个或多个数据块(Data Sub-Blocks)组成,保存要在显示的字符串。 | |||||||
文本数据块 |
|||||||||
... |
|||||||||
N+1 | 块终结 | Block Terminator - 标识注释块结束,固定值0 |
推荐:1.由于文本的字体(Font)和尺寸(Size)没有定义,解码器应该根据情况选择最合适的;
2.如果一个字符的值小于0x20或大于0xF7,则这个字符被推荐显示为一个空格(0x20);
3.为了兼容性,最好定义字符单元格的大小为8x8或8x16(宽度x高度)。
应用程序扩展(Application Extension)
这是提供给应用程序自己使用的(需要89a版本),应用程序可以在这里定义自己的标识、信息等,组成:
BYTE | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | BIT |
1 | 扩展块标识 | Extension Introducer - 标识这是一个扩展块,固定值0x21 | |||||||
2 | 图形控制扩展标签 | Application Extension Label - 标识这是一个应用程序扩展块,固定值0xFF | |||||||
3 | 块大小 | Block Size - 块大小,固定值11 | |||||||
4 | 应用程序标识符 | Application Identifier - 用来鉴别应用程序自身的标识(8个连续ASCII字符) | |||||||
5 | |||||||||
6 | |||||||||
7 | |||||||||
8 | |||||||||
9 | |||||||||
10 | |||||||||
11 | |||||||||
12 | 应用程序鉴别码 | Application Authentication Code - 应用程序定义的特殊标识码(3个连续ASCII字符) | |||||||
13 | |||||||||
14 | |||||||||
N |
... |
应用程序自定义数据块 - 一个或多个数据块(Data Sub-Blocks)组成,保存应用程序自己定义的数据 | |||||||
应用程序数据 |
|||||||||
... |
|||||||||
N+1 | 块终结器 | lock Terminator - 标识注释块结束,固定值0 |
文件结尾部分
文件终结器(Trailer)
这一部分只有一个值为0的字节,标识一个GIF文件结束.
BYTE | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
1 |
文件终结 |
GIF Trailer - 标识GIF文件结束,固定值0x3B |
更多精彩
赞助商链接