基于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不再難懂)
評論