現在有很多圖標采用的都是ico格式,ico圖標文件可以存儲單個圖案,也可以存儲多尺寸、多色板。下面我們就來了解下ico圖標文件格式構成。

圖標文件格式
圖標文件(*.ico)由圖標文件頭、圖片入口數據和圖片數據三個部分組成,這三個部分的具體結構如下:
1. 圖標文件頭
圖標文件頭包括三個部分6個字節,他們分別是
數據類型
字節
含義
說明
WORD
2
保留字段(wReserved)
必須0
WORD
2
文件類型(wType)
必須1
WORD
2
圖片數量(wCount)
表示該圖標文件包含多少個圖片
2. 圖片入口
接下來是wCount個“圖片入口”數據。每個“圖片入口”數據結構如下:
數據類型
字節
含義
說明
BYTE
1
圖像寬度(bWidth)
單位:像素。256px的圖片該值為0
BYTE
1
圖像高度(bHeight)
同上
BYTE
1
顏色數(bClrCount)
不重要
BYTE
1
保留字段(bReserved)
必須為0
WORD
2
平面數(wPlanes)
一般為1
WORD
2
比特數(wBitCount)
顏色深度,取值4位、8位、24位和32位
DWORD
4
數據大小(dwImageSize)
對應圖片數據占用的字節數
DWORD
4
數據位置(dwOffset)
對應圖片數據在文件中的位置
3. 圖片數據
對于256X256像素的圖片,在文件中存儲的格式是PNG,只要將整個PNG文件寫在數據區就可以了,對應前面的圖片入口的數據大小(dwImageSize)也是PNG文件的大小。但是XP操作系統不認該圖片。
對于其他圖片,該區域存放了一個目標顏色深度(wBitCount)的數據位圖后面跟一個對應的遮罩位圖。系統在繪制圖標時會先將遮罩位圖與目標設備“與”拷貝(SRCAND),然后在把數據位圖與目標設備“異或”拷貝(SRCINVERT)。
數據位圖的顏色深度可以是4位16色、8位256色、24位真彩色或32位帶Alpha通道。需要注意的是就算是32位帶Alpha通道的位圖也是需要遮罩位圖的。
遮罩位圖是一個1位顏色深度的2值位圖,有圖像的位置填0,透明的位置填1。
數據位圖的結構與普通位圖結構基本相似,但是缺少14位的位圖文件頭。具體包含位圖信息頭、顏色表(只有4位和8位的位圖才會有,4位的位圖顏色表長度為16X4=64字節,8位的位圖顏色表長度為256X4=1024字節)和數據區。
位圖信息頭結構如下:
數據類型
字節
含義
說明
DWORD
4
結構大小(biSize)
固定為40
LONG
4
圖像寬度(biWidth)
單位:像素
LONG
4
圖像高度(biHeight)
單位:像素。由于還有遮罩因此要X 2
WORD
2
平面數(biPlanes)
一般為1
WORD
2
比特數(biBitCoun
新聞熱點
疑難解答