文件头 含字节顺序(2B,表示存储格式:Ⅱ-ntel格式; MM--Motorola格式); 标记号(2B,版本信息); 指向第一个参数指针表的编码(4B) 参数指针表 由每个长为12B参数块构成,描述压缩种类、长 宽、彩色数、扫描密度等参数。 较长参数(如调色板)只给出指针,参数放在参数 数据表中。其结构定义如下:
◼ 文件头 含字节顺序(2B,表示存储格式: II-Intel格式; MM—Motorola格式); 标记号(2B, 版本信息); 指向第一个参数指针表的编码(4B)。 ◼ 参数指针表 由每个长为12B参数块构成, 描述压缩种类、长 宽、彩色数、扫描密度等参数。 较长参数(如调色板)只给出指针, 参数放在参数 数据表中。其结构定义如下:
typedef struct i Int tag-type; int number-size long length; long offset ITIF-FIELD ■图像数据按参数表中描述的形式按行排列
typedef struct { int tag-type; int number-size; long length; long offset; }TIF-FIELD; ◼ 图像数据 按参数表中描述的形式按行排列
PCX文件格式 ■由ZSof公司最初制定 结构 文件头(128字节) ■数据部分(采用行程长度编码) ■文件头结构定义
PCX文件格式 ◼ 由Z Soft公司最初制定 ◼ 结构 ◼ 文件头(128字节) ◼ 数据部分(采用行程长度编码) ◼ 文件头结构定义
typedef struct< char manufacture; /*al ways 0xa0*/ char version char encode /*al ways 1/ char bits-per-pixel; / color bits Ymin; /*image origin * int Xmax, Ymax; /image dimension * int hres / resolution values int vres char palette[48]; /*color palette * char reserved char color-planes; /color planes * int bytes-per-line; / line buffer size * int palette-type; /*grey or color palette * char filler 58 3 PCXHEAD 其中 Version若为5,文件内有个256色调色板,数据768字节,在文件 最后
typedef struct{ char manufacture; /*always 0xa0*/ char version; char encoding; /*always 1*/ char bits-per-pixel; /*color bits */ int Xmin, Ymin; /* image origin */ int Xmax, Ymax; /* image dimension */ int hres; /* resolution values */ int vres; char palette[48]; /* color palette */ char reserved; char color-planes; /* color planes */ int bytes-per-line; /* line buffer size */ int palette-type; /* grey or color palette */ char filler[58]; } PCXHEAD; 其中Version若为5,文件内有个256色调色板,数据768字节,在文件 最后
文件体对像素数据采用行程长度编码,由包含 Keybyte和 Databyte的包组成。分2种情况: (1)若 Keybyte最高位为11,则低6位为重复次数( (ndex), 即后一个字节重复使用 Index次。但最多重复63次,若再 长重建一个包。如图2,2 Index Databyte Databyte 图22PCX数据包的结构 (2)若 Keybyte最高位不是11,那么该 Databyte按原样写入图 像文件。对一个字符的表示用长度为1的包
◼ 文件体 对像素数据采用行程长度编码, 由包含 Keybyte和Databyte的包组成。分2种情况: (1) 若Keybyte最高位为11, 则低6位为重复次数(Index), 即后一个字节重复使用Index次。但最多重复63次,若再 长重建一个包。如图2.2。 图2.2 PCX数据包的结构 (2) 若Keybyte最高位不是11,那么该Databyte按原样写入图 像文件。对一个字符的表示用长度为1的包。 11 Index Databyte 11 1 Databyte