您好,現在軟糖來為大家解答以上的問題。圖標文字顏色怎么改,圖標文件格式相信很多小伙伴還不知道,現在讓我們一起來看看吧!
1、圖標文件格式圖標文件(*.ico)由圖標文件頭、圖片入口數據和圖片數據三個部分組成,這三個部分的具體結構如下:1.圖標文件頭圖標文件頭包括三個部分6個字節,他們分別是數據類型字節含義說明WORD2保留字段(wReserved)必須0WORD2文件類型(wType)必須1WORD2圖片數量(wCount)表示該圖標文件包含多少個圖片2.圖片入口接下來是wCount個“圖片入口”數據。
2、每個“圖片入口”數據結構如下:數據類型字節含義說明BYTE1圖像寬度(bWidth)單位:像素。
3、256px的圖片該值為0BYTE1圖像高度(bHeight)同上BYTE1顏色數(bClrCount)不重要BYTE1保留字段(bReserved)必須為0WORD2平面數(wPlanes)一般為1WORD2比特數(wBitCount)顏色深度,取值4位、8位、24位和32位DWORD4數據大小(dwImageSize)對應圖片數據占用的字節數DWORD4數據位置(dwOffset)對應圖片數據在文件中的位置3.圖片數據對于256X256像素的圖片,在文件中存儲的格式是PNG,只要將整個PNG文件寫在數據區就可以了,對應前面的圖片入口的數據大小(dwImageSize)也是PNG文件的大小。
4、但是XP操作系統不認該圖片。
5、對于其他圖片,該區域存放了一個目標顏色深度(wBitCount)的數據位圖后面跟一個對應的遮罩位圖。
6、系統在繪制圖標時會先將遮罩位圖與目標設備“與”拷貝(SRCAND),然后在把數據位圖與目標設備“異或”拷貝(SRCINVERT)。
7、數據位圖的顏色深度可以是4位16色、8位256色、24位真彩色或32位帶Alpha通道。
8、需要注意的是就算是32位帶Alpha通道的位圖也是需要遮罩位圖的。
9、遮罩位圖是一個1位顏色深度的2值位圖,有圖像的位置填0,透明的位置填1。
10、數據位圖的結構與普通位圖結構基本相似,但是缺少14位的位圖文件頭。
11、具體包含位圖信息頭、顏色表(只有4位和8位的位圖才會有,4位的位圖顏色表長度為16X4=64字節,8位的位圖顏色表長度為256X4=1024字節)和數據區。
12、位圖信息頭結構如下:數據類型字節含義說明DWORD4結構大小(biSize)固定為40LONG4圖像寬度(biWidth)單位:像素LONG4圖像高度(biHeight)單位:像素。
13、由于還有遮罩因此要X2WORD2平面數(biPlanes)一般為1WORD2比特數(biBitCount)顏色深度,取值4位、8位、24位和32位DWORD4壓縮(biCompression)一般為0DWORD4數據大小(biSizeImage)LONG4分辨率(biXPelsPerMeter)LONG4分辨率(biYPelsPerMeter)DWORD4使用顏色(biClrUsed)DWORD4重要顏色(biClrImportant)獲取數據位圖可以用如下辦法:先利用CImage類創建一個目標大小和顏色深度的位圖。
14、注意:4位和8位的位圖需要設置顏色表,不然無法從源圖片復制數據,顏色表可以采用固定的數據。
15、32位位圖需要開啟Alpha通道,不然無法復制Alpha通道的數據。
16、然后利用CImage::GetDC、CImage::ReleaseDC、CImage::GetPixelAddress和CImage::Draw等函數從源圖復制圖像數據到該位圖。
17、接著將該位圖保存到一個臨時位圖文件中。
18、從該文件中讀取。
本文就為大家分享到這里,希望小伙伴們會喜歡。