国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

圖標文,件格式之單色圖標詳細介紹

2019-11-02 14:14:54
字體:
來源:轉載
供稿:網友

   圖標文件格式有多種,常見的有PNG、ICL、IP,還有就是接下來小編要為大家介紹的ICO格式圖標,ICO格式圖標一種單色圖標,廣泛存在于windows系統中的dll、exe文件中。

圖標文件格式之單色圖標詳細介紹 電腦高手

  ICON文件有一個固定的文件頭,它的數據結構如下:

  typedef struct {

  WORD idReserved;

  WORD idType;

  WORD idCount;

  ICONDIRENTRY idEntries[1];

  } ICONDIR, *LPICONDIR;

  其中idReserved為系統保留的字段必須為0

  其中idType為資源類型,1為圖標,2為光標

  其中idCount為ICON圖標資源中包含多個少圖像組成

  其中idEntries是一個指向ICONDIRENTRY結構體的數據它的長度是由idCount來決定的.

  接下來我們看一看ICONDIRENTRY的結構體是如何定義的吧!

  typedef struct {

  BYTE bWidth;

  BYTE bHeight;

  BYTE bColorCount;

  BYTE bReserved;

  WORD wPlanes;

  WORD wBitCount;

  DWORD dwBytesInRes;

  DWORD dwImageOffset;

  } ICONDIRENTRY, *LPICONDIRENTRY;

  又是一長串的結構體...

  *bWidth和bHeight表示了圖像的寬和高,起初,系統只支持1到255的大小,即2^8-1的大小,

  但是從Widnows95開始,可以支持到256的大小了.

  *wBitCount和wPlanes用來描述圖像的顏色深度,對于單色圖標來說,它們都是1.

  *bReserved是系統保留字段為0

  *dwBytesinRes表示圖像數據大小

  *dwImageOffse表示圖像數據的位置即偏移地址.

  *但是有個地方是值得注意的,bColorCount它被假定的認為等于圖像的顏色數量,也就是說它等于:

  bColorCount = 1 << (wBitCount * wPlanes)

  當wBitCount * wPlanes >= 8時,則bColorCount為0

  *在現實情況中,很多人懶得填寫bColorCount的值,即使是4色或16色的圖標,也把它設為0.從Windows XP開始,

  Windows會檢測這個常見的錯誤,但是對于planar位圖來說,這個自動糾錯的機制還是有些問題的,幸運的是,幾乎沒有人使用planar位圖了.

  但是你還是不應該依賴于Windows提供的自動糾錯機制,而正確的填寫bColorCount的值.錯誤的bColorCount意味

西瓜電影網[www.aikan.tv/special/xiguadianyingwang/]
著,由于提供了錯誤的顏色深度信息,

  Windows可能會在ico文件中選擇一個不怎么理想的圖像.

  *單色圖標由兩個位圖組成,常稱為掩碼,分別被稱為AND和XOR,繪制圖標分為兩個步驟:首先mask和screen作"與"操作,然后再做"異或"操作.

  pixel = (screen AND mask) XOR image

  為mask和image選擇適當的值,可以覆蓋所有單色blt的操作.

  mask image 結果 操作

  0 0 (screen AND 0) XOR 0 = 0 黑色

  0 1 (screen AND 0) XOR 1 = 1 白色

  1 0 (screen AND 1) XOR 0 = screen 不變

  1 1 (screen AND 1) XOR 1 = NOT screen 反色

  *理論上說,mask指定了image的像素是否拷貝到屏幕上,mask中黑色的像素表示要將image中相應的像素拷貝到屏幕上.

  *mask和image位圖在物理上是保存為單個但是雙倍高度的DIB.首先是image位圖,然后是mask.由于DIB是自下而上的保存格式,

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 土默特右旗| 曲松县| 隆林| 马关县| 永德县| 临邑县| 贵港市| 澎湖县| 福贡县| 哈巴河县| 闽清县| 罗甸县| 扎兰屯市| 平江县| 浦县| 阿城市| 建德市| 泗水县| 南昌市| 浦北县| 蒲江县| 吴江市| 东乌珠穆沁旗| 贵定县| 来宾市| 济阳县| 亳州市| 青海省| 遵义县| 廊坊市| 社旗县| 汕头市| 庆云县| 光泽县| 泸西县| 内丘县| 祁东县| 格尔木市| 安福县| 安宁市| 遂宁市|