基于GPS船用导航仪的嵌入式电子海图数据的制作与显示
3 嵌入式电子海图数据的显示
嵌入式电子海图显示系统使用前需要通过计算机的超级终端拷入处理主程序及至少5个文件才能运行,5个文件是国标汉字库文件、logo图片文件、文本文件(港口介绍等)、图片文件(航行对景图片)。首次拷入文件时需对Nand flash进行格式化,以后如有图片文件更新等操作,可用DOS命令进行删除或建立。
(1)logo图片(PCX格式)的显示方法
在嵌入式电子海图显示系统中,开机后会显示一幅开机图片,由于嵌入式电子海图系统中内存较小,CPU 处理速度有限,对现有计算机流行的图片格式进行比较后,嵌入式电子海图系统中选择了PCX 图片格式作为开机显示图片。PCX 格式比BMP 格式占有存储容量小,比JPG 格式图片解压时占有CPU 资源也少得多。显示PCX 图片的过程如下:
读取 PCX 文件头(读出图片文件的大小、判断是否是PCX 图片、颜色位数等)
读调色板(读取图片的颜色信息)
解压图片数据(图片数据恢复)
设置调色板(设置嵌入式海图系统中的调色板与显示图片调色板一致)
显示开机画面
以下是标准PCX 格式图片的文件头:
typedef STruct stPcxHead
{ //PCX 文件头数据结构,共128 字节
int8 Signature; //PCX 文件标志,始终是0AH
int8 Version; //版本号
int8 Encoding; //压缩标志,始终是1,表示有限行程编码
int8 BitsPerPixel; //每像素所占位数
int16 XMin,YMin; //图像左上角坐标
int16 XMax,YMax; //图像右下角坐标
int16 HRes,VRes; //存储此PCX 文件的图形模式分辨率
int8 Palette[48]; //16 色DAC 调色板
int8 Reserved1; //保留
int8 ColorPlaneNum; //颜色平面数
int16 BytesPerLine; //每行字节数
int16 PaletteType; //DAC 调色板类型
int8 Reserved2[58]; //全为零
}stPcxHead;
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
评论