亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? bcb_g3.htm

?? C++Builder教學(xué)大全
?? HTM
?? 第 1 頁 / 共 2 頁
字號:
 

<html>

<head>

<title>BMP位圖文件結(jié)構(gòu)及平滑縮放</title>

<meta http-equiv="目錄類型" content="文本/html; 字符集=gb2312">

</head>

<body bgcolor="#FFFFFF">

<table width="100%" border="0" height="285">

  <tr> 

    <td height="35"> 

      <div align="center" class="p14"><font color="#000000">BMP位圖文件結(jié)構(gòu)及平滑縮放</font></div>

    </td>

  </tr>

  <tr valign="top"> 

    <td>

      <p><font color=#ffffff>----</font> 用普通方法顯示BMP位圖,占內(nèi)存大,速度慢,在圖形縮小時,失真嚴(yán)重,在低顏色位數(shù)的設(shè)備上顯示高顏色位數(shù)的圖形圖形時失真大。本文采用視頻函數(shù)顯示BMP位圖,可以消除以上的缺點(diǎn)。  

      <p><font color=#ffffff>----</font> <b>一、BMP文件結(jié)構(gòu)</b>  

      <p><font color=#ffffff>----</font> 1. BMP文件組成  

      <p><font color=#ffffff>----</font> BMP文件由文件頭、位圖信息頭、顏色信息和圖形數(shù)據(jù)四部分組成。  

      <p><font color=#ffffff>----</font> 2. BMP文件頭  

      <p><font color=#ffffff>----</font> BMP文件頭數(shù)據(jù)結(jié)構(gòu)含有BMP文件的類型、文件大小和位圖起始位置等信息。  

      <p><font color=#ffffff>----</font> 其結(jié)構(gòu)定義如下:  

      <p>typedef struct tagBITMAPFILEHEADER<br> 

        {<br> 

        WORDbfType;&nbsp;&nbsp; // 位圖文件的類型,必須為BM<br> 

        DWORD&nbsp;&nbsp; bfSize;&nbsp;&nbsp; // 位圖文件的大小,以字節(jié)為單位<br> 

        WORDbfReserved1;&nbsp; // 位圖文件保留字,必須為0<br> 

        WORDbfReserved2;&nbsp; // 位圖文件保留字,必須為0<br> 

        DWORD&nbsp;&nbsp; bfOffBits; // 位圖數(shù)據(jù)的起始位置,以相對于位圖<br> 

        // 文件頭的偏移量表示,以字節(jié)為單位<br> 

        } BITMAPFILEHEADER;<br> 

      </p> 

      <font  

      color=#ffffff>----</font> 3. 位圖信息頭  

      <p><font color=#ffffff>----</font>  

      <p>BMP位圖信息頭數(shù)據(jù)用于說明位圖的尺寸等信息。<br> 

        typedef struct tagBITMAPINFOHEADER{<br> 

        &nbsp;&nbsp; DWORD&nbsp; biSize;&nbsp;&nbsp; // 本結(jié)構(gòu)所占用字節(jié)數(shù)<br> 

        &nbsp;&nbsp; LONGbiWidth;&nbsp; // 位圖的寬度,以像素為單位<br> 

        &nbsp;&nbsp; LONGbiHeight; // 位圖的高度,以像素為單位<br> 

        &nbsp;&nbsp; WORD&nbsp;&nbsp; biPlanes; // 目標(biāo)設(shè)備的級別,必須為1<br> 

        &nbsp;&nbsp; WORD&nbsp;&nbsp; biBitCount// 每個像素所需的位數(shù),必須是1(雙色),<br> 

        &nbsp; // 4(16色),8(256色)或24(真彩色)之一<br> 

        &nbsp;&nbsp; DWORD&nbsp; biCompression;&nbsp;&nbsp; // 位圖壓縮類型,必須是 0(不壓縮),<br> 

        &nbsp; // 1(BI_RLE8壓縮類型)或2(BI_RLE4壓縮類型)之一<br> 

        &nbsp;&nbsp; DWORD&nbsp; biSizeImage; // 位圖的大小,以字節(jié)為單位<br> 

        &nbsp;&nbsp; LONGbiXPelsPerMeter; // 位圖水平分辨率,每米像素數(shù)<br> 

        &nbsp;&nbsp; LONGbiYPelsPerMeter;&nbsp; // 位圖垂直分辨率,每米像素數(shù)<br> 

        &nbsp;&nbsp; DWORD&nbsp; biClrUsed;// 位圖實(shí)際使用的顏色表中的顏色數(shù)<br> 

        &nbsp;&nbsp; DWORD&nbsp; biClrImportant;// 位圖顯示過程中重要的顏色數(shù)<br> 

        } BITMAPINFOHEADER;<br> 

      </p> 

      <font  

      color=#ffffff>----</font> 4. 顏色表  

      <p><font color=#ffffff>----</font> 顏色表用于說明位圖中的顏色,它有若干個表項,每一個表項是一個RGBQUAD類型的結(jié)構(gòu),定義一種顏色。RGBQUAD結(jié)構(gòu)的定義如下:  

      <p>typedef struct tagRGBQUAD {<br> 

        BYTErgbBlue;// 藍(lán)色的亮度(值范圍為0-255)<br> 

        BYTErgbGreen;&nbsp;&nbsp; // 綠色的亮度(值范圍為0-255)<br> 

        BYTErgbRed; // 紅色的亮度(值范圍為0-255)<br> 

        BYTErgbReserved;// 保留,必須為0<br> 

        } RGBQUAD;<br> 

        顏色表中RGBQUAD結(jié)構(gòu)數(shù)據(jù)的個數(shù)有biBitCount來確定:<br> 

        當(dāng)biBitCount=1,4,8時,分別有2,16,256個表項;<br> 

        當(dāng)biBitCount=24時,沒有顏色表項。<br> 

        &nbsp;&nbsp; 位圖信息頭和顏色表組成位圖信息,BITMAPINFO結(jié)構(gòu)定義如下:<br> 

        typedef struct tagBITMAPINFO {<br> 

        &nbsp;&nbsp; BITMAPINFOHEADER bmiHeader;&nbsp;&nbsp; // 位圖信息頭<br> 

        &nbsp;&nbsp; RGBQUAD&nbsp; bmiColors[1];&nbsp; // 顏色表<br> 

        } BITMAPINFO;<br> 

        <br> 

      </p> 

      <font color=#ffffff>----</font> 5. 位圖數(shù)據(jù)  

      <p><font color=#ffffff>----</font> 位圖數(shù)據(jù)記錄了位圖的每一個像素值,記錄順序是在掃描行內(nèi)是從左到右,掃描行之間是從下到上。位圖的一個像素值所占的字節(jié)數(shù):  

      <p>當(dāng)biBitCount=1時,8個像素占1個字節(jié);<br> 

        當(dāng)biBitCount=4時,2個像素占1個字節(jié);<br> 

        當(dāng)biBitCount=8時,1個像素占1個字節(jié);<br> 

        當(dāng)biBitCount=24時,1個像素占3個字節(jié);<br> 

        Windows規(guī)定一個掃描行所占的字節(jié)數(shù)必須是<br> 

        4的倍數(shù)(即以long為單位),不足的以0填充,<br> 

        一個掃描行所占的字節(jié)數(shù)計算方法:<br> 

        DataSizePerLine= (biWidth* biBitCount+31)/8;&nbsp; <br> 

        &nbsp;// 一個掃描行所占的字節(jié)數(shù)<br> 

        DataSizePerLine= DataSizePerLine/4*4; // 字節(jié)數(shù)必須是4的倍數(shù)<br> 

        位圖數(shù)據(jù)的大小(不壓縮情況下):<br> 

        DataSize= DataSizePerLine* biHeight;<br> 

      </p> 

      <font color=#ffffff>----</font> <b>二、BMP位圖一般顯示方法</b>  

      <p><font color=#ffffff>----</font> 1. 申請內(nèi)存空間用于存放位圖文件  

      <p><font color=#ffffff>----</font> GlobalAlloc(GHND,F(xiàn)ileLength);  

      <p><font color=#ffffff>----</font> 2. 位圖文件讀入所申請內(nèi)存空間中  

      <p><font color=#ffffff>----</font> LoadFileToMemory( mpBitsSrc,mFileName);  

      <p><font color=#ffffff>----</font> 3. 在OnPaint等函數(shù)中用創(chuàng)建顯示用位圖  

      <p><font color=#ffffff>----</font> 用CreateDIBitmap()創(chuàng)建顯示用位圖,用CreateCompatibleDC()創(chuàng)建兼容DC,  

      <p><font color=#ffffff>----</font> 用SelectBitmap()選擇顯示位圖。  

      <p><font color=#ffffff>----</font> 4. 用BitBlt或StretchBlt等函數(shù)顯示位圖  

      <p><font color=#ffffff>----</font> 5. 用DeleteObject()刪除所創(chuàng)建的位圖  

      <p><font color=#ffffff>----</font> 以上方法的缺點(diǎn)是: 1)顯示速度慢; 2) 內(nèi)存占用大; 3) 位圖在縮小顯示時圖形失真大,(可通過安裝字體平滑軟件來解決);  

        4) 在低顏色位數(shù)的設(shè)備上(如256顯示模式)顯示高顏色位數(shù)的圖形(如真彩色)圖形失真嚴(yán)重。  

      <p><font color=#ffffff>----</font> <b>三、BMP位圖縮放顯示</b>  

      <p><font color=#ffffff>----</font> 用DrawDib視頻函數(shù)來顯示位圖,內(nèi)存占用少,速度快,而且還可以對圖形進(jìn)行淡化(Dithering)處理。淡化處理是一種圖形算法,可以用來在一個支持比圖像所用顏色要少的設(shè)備上顯示彩色圖像。BMP位圖顯示方法如下:  

      <p><font color=#ffffff>----</font> 1. 打開視頻函數(shù)DrawDibOpen(),一般放在在構(gòu)造函數(shù)中  

      <p><font color=#ffffff>----</font> 2. 申請內(nèi)存空間用于存放位圖文件  

      <p><font color=#ffffff>----</font> GlobalAlloc(GHND,F(xiàn)ileLength);  

      <p><font color=#ffffff>----</font> 3. 位圖文件讀入所申請內(nèi)存空間中  

      <p><font color=#ffffff>----</font> LoadFileToMemory( mpBitsSrc,mFileName);  

      <p><font color=#ffffff>----</font> 4. 在OnPaint等函數(shù)中用DrawDibRealize(),DrawDibDraw()顯示位圖  

      <p><font color=#ffffff>----</font> 5. 關(guān)閉視頻函數(shù)DrawDibClose(),一般放在在析構(gòu)函數(shù)中  

      <p><font color=#ffffff>----</font> 以上方法的優(yōu)點(diǎn)是: 1)顯示速度快; 2) 內(nèi)存占用少; 3) 縮放顯示時圖形失真小,4)  

        在低顏色位數(shù)的設(shè)備上顯示高顏色位數(shù)的圖形圖形時失真小; 5) 通過直接處理位圖數(shù)據(jù),可以制作簡單動畫。  

      <p><font color=#ffffff>----</font> <b>四、CViewBimap類編程要點(diǎn)</b>  

      <p><font color=#ffffff>----</font> 1. 在CViewBimap類中添加視頻函數(shù)等成員  

      <p>HDRAWDIB&nbsp; m_hDrawDib;&nbsp; // 視頻函數(shù)<br> 

        HANDLEmhBitsSrc; // 位圖文件句柄(內(nèi)存)<br> 

        LPSTR mpBitsSrc;&nbsp; // 位圖文件地址(內(nèi)存)<br> 

        BITMAPINFOHEADER&nbsp; *mpBitmapInfo;&nbsp;&nbsp; // 位圖信息頭<br> 

      </p> 

      <font color=#ffffff>----</font> 2. 在CViewBimap類構(gòu)造函數(shù)中添加打開視頻函數(shù)  

      <p><font color=#ffffff>----</font> m_hDrawDib= DrawDibOpen();  

      <p><font color=#ffffff>----</font> 3. 在CViewBimap類析構(gòu)函數(shù)中添加關(guān)閉視頻函數(shù)  

      <p>if( m_hDrawDib != NULL)<br> 

        &nbsp; {<br> 

        &nbsp; DrawDibClose( m_hDrawDib);<br> 

        &nbsp; m_hDrawDib = NULL;<br> 

        &nbsp; }<br> 

      </p> 

      <font  

      color=#ffffff>----</font> 4. 在CViewBimap類圖形顯示函數(shù)OnPaint中添加GraphicDraw()  

      <p>voidCViewBitmap::OnPaint()<br> 

        {<br> 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
a亚洲天堂av| 精品一区二区三区久久久| 成a人片国产精品| 亚洲婷婷在线视频| 欧美性三三影院| 午夜亚洲国产au精品一区二区| 欧美精品少妇一区二区三区| 日韩精品五月天| 欧美电影免费观看高清完整版在线| 精品一区二区三区蜜桃| 国产精品免费丝袜| 欧洲人成人精品| 免费观看30秒视频久久| 国产欧美日韩麻豆91| 在线观看一区二区精品视频| 日韩—二三区免费观看av| 久久蜜桃av一区精品变态类天堂 | 亚洲国产欧美日韩另类综合| 欧美日韩国产123区| 久久国产欧美日韩精品| 国产精品日韩精品欧美在线| 在线观看日韩电影| 国产一区二区在线免费观看| 国产精品国产精品国产专区不蜜| 色婷婷av一区二区三区gif| 美腿丝袜亚洲三区| 国产精品福利av| 亚洲综合色噜噜狠狠| 91精品国产91综合久久蜜臀| 国产精品一二三| 午夜精品福利一区二区蜜股av| 精品国精品国产| 在线观看www91| 国产成人免费高清| 日韩电影在线看| 亚洲同性同志一二三专区| 日韩精品一区二区三区三区免费| 91丨porny丨户外露出| 麻豆久久久久久久| 亚洲高清免费视频| 国产精品美女久久久久久久| 制服丝袜av成人在线看| 成人黄色大片在线观看| 久久精品久久综合| 亚洲国产cao| 最新欧美精品一区二区三区| 欧美电影免费观看高清完整版在线| 色成年激情久久综合| 国产精品夜夜嗨| 久久99国产精品尤物| 午夜久久久久久| 一区二区成人在线| 国产精品灌醉下药二区| 精品久久久久一区| 日韩一区二区三区观看| 欧美日韩在线亚洲一区蜜芽| 91视频一区二区| 豆国产96在线|亚洲| 韩国v欧美v亚洲v日本v| 日韩精彩视频在线观看| 亚洲资源中文字幕| 亚洲精品成人在线| 中文字幕中文字幕一区二区| 国产亚洲短视频| 久久综合成人精品亚洲另类欧美| 有坂深雪av一区二区精品| 国产精品国产三级国产普通话三级 | 久88久久88久久久| 丝袜亚洲另类欧美| 午夜久久久影院| 天堂影院一区二区| 午夜a成v人精品| 五月天久久比比资源色| 视频一区二区不卡| 日韩精品国产欧美| 天天影视色香欲综合网老头| 亚洲一区在线电影| 亚洲国产cao| 日韩精品五月天| 另类欧美日韩国产在线| 精品一区二区在线视频| 老汉av免费一区二区三区| 精品一区二区三区的国产在线播放| 男女视频一区二区| 韩国女主播一区| 国产高清精品网站| 成人免费高清视频| 精品国产乱码久久久久久1区2区| 日韩欧美国产三级| 久久亚洲精品国产精品紫薇| 亚洲国产精品国自产拍av| 国产精品日韩成人| 亚洲乱码国产乱码精品精98午夜 | 日本不卡一二三区黄网| 蜜桃av一区二区三区电影| 韩国av一区二区三区| 岛国av在线一区| 日本高清不卡在线观看| 欧美日韩久久久| 精品成人佐山爱一区二区| 国产欧美一区二区三区在线看蜜臀| 日韩一区中文字幕| 无吗不卡中文字幕| 国产乱码精品一品二品| 91网站在线播放| 666欧美在线视频| 国产午夜精品久久久久久免费视| 亚洲欧洲国产日韩| 日韩av在线播放中文字幕| 国产酒店精品激情| 欧美三级中文字幕| 久久嫩草精品久久久久| 亚洲精选在线视频| 久久国产尿小便嘘嘘尿| 色婷婷久久一区二区三区麻豆| 欧美精品三级日韩久久| 国产精品色在线| 视频一区二区不卡| 9久草视频在线视频精品| 7777精品伊人久久久大香线蕉超级流畅 | 欧美一区日本一区韩国一区| 国产无遮挡一区二区三区毛片日本| 亚洲综合色成人| 国产一区不卡精品| 欧美少妇一区二区| 国产精品三级av| 蜜臀av国产精品久久久久| 99精品在线免费| 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲精选视频在线| 国产成人鲁色资源国产91色综| 欧美日韩国产精品成人| 国产精品一品二品| 欧美高清视频不卡网| 中文字幕在线不卡国产视频| 六月丁香综合在线视频| 91国在线观看| 国产精品久久毛片a| 国产永久精品大片wwwapp| 欧美日韩精品一区二区天天拍小说 | 亚洲欧美一区二区三区极速播放| 青青草原综合久久大伊人精品优势| 91蝌蚪porny成人天涯| 久久久久久久综合狠狠综合| 免费看黄色91| 欧美肥胖老妇做爰| 亚洲一二三四久久| 99精品视频免费在线观看| 久久久久久亚洲综合影院红桃| 免费在线观看视频一区| 欧美人与禽zozo性伦| 依依成人精品视频| 91丨九色丨国产丨porny| 国产精品网站导航| 国产精品一级二级三级| 久久影院午夜片一区| 麻豆精品国产传媒mv男同| 4438x成人网最大色成网站| 亚洲愉拍自拍另类高清精品| 91麻豆精品秘密| 中文字幕+乱码+中文字幕一区| 国产一区二区三区在线观看免费 | 粉嫩蜜臀av国产精品网站| 精品国产成人在线影院| 麻豆精品久久久| 欧美大片一区二区三区| 久久精品国产99国产| 精品少妇一区二区三区| 韩国在线一区二区| 欧美v日韩v国产v| 精品一区二区三区视频在线观看| 日韩免费观看高清完整版在线观看| 久久精品国产在热久久| 日本怡春院一区二区| 欧美二区在线观看| 热久久一区二区| 久久综合久久综合久久| 国产mv日韩mv欧美| 亚洲欧美在线视频观看| 色999日韩国产欧美一区二区| 伊人开心综合网| 欧美日韩视频在线第一区| 日本不卡视频一二三区| 久久中文字幕电影| 成av人片一区二区| 亚洲国产精品久久一线不卡| 91精品一区二区三区在线观看| 卡一卡二国产精品| 日本一区二区综合亚洲| 色综合网站在线| 日韩激情av在线| 久久久蜜臀国产一区二区| 99精品国产99久久久久久白柏| 一区二区三区不卡视频| 日韩欧美一级片| jiyouzz国产精品久久| 午夜电影久久久| 欧美精品一区二区三区蜜桃| av福利精品导航| 日本不卡的三区四区五区|