圖形圖象程序設(shè)計(jì)基礎(chǔ)

圖形圖象程序設(shè)計(jì)基礎(chǔ)

ID:40175622

大?。?8.50 KB

頁(yè)數(shù):34頁(yè)

時(shí)間:2019-07-24

圖形圖象程序設(shè)計(jì)基礎(chǔ)_第1頁(yè)
圖形圖象程序設(shè)計(jì)基礎(chǔ)_第2頁(yè)
圖形圖象程序設(shè)計(jì)基礎(chǔ)_第3頁(yè)
圖形圖象程序設(shè)計(jì)基礎(chǔ)_第4頁(yè)
圖形圖象程序設(shè)計(jì)基礎(chǔ)_第5頁(yè)
資源描述:

《圖形圖象程序設(shè)計(jì)基礎(chǔ)》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、圖形圖象程序設(shè)計(jì)基礎(chǔ)常用顏色模式RGBRGB模式ABGRRGBA模式ARGBBGRA模式RGB(255,0,0)0xff0000ff0xffff000024位32位存放顏色的數(shù)據(jù)結(jié)構(gòu)及其合成RGB模式:COLORREFclr;clr=RGB(R,G,B);RGBA模式:UINTclr;clr=(A<<24)+(B<<16)+(G<<8)+R;BGRA模式:UINTclr;clr=(A<<24)+(R<<16)+(G<<8)+B;顏色疊加(以BGRA模式為例)UINToverlay_color(UINTclr1,UINTclr2){intr,g,b,a,r

2、1,b1,g1,r2,g2,b2,a1,a2;UINTnew_color;a1=(UINT)clr1>>24;a2=(UINT)clr2>>24;if(a2==0)returnclr1;if(a1==255)returnclr1;if(a1==0)returnclr2;ARGBr1=clr1&0x00ff0000;g1=clr1&0x0000ff00;b1=clr1&0x000000ff;r2=clr2&0x00ff0000;g2=clr2&0x0000ff00;b2=clr2&0x000000ff;r=(UINT)((255-a1)*r2+a1*r1)

3、>>24;g=(UINT)((255-a1)*g2+a1*g1)>>16;b=(UINT)((255-a1)*b2+a1*b1)>>8;a=(a1>a2?a1:a2);ARGBnew_color=(UINT)(a<<24)+(UINT)(r<<16)+(UINT)(g<<8)+b;returnnew_color;}ARGBBMP文件結(jié)構(gòu)BMP文件組成文件頭BITMAPFILEHEADER位圖信息頭BITMAPINFOHEADER顏色信息RGBQUAD圖形數(shù)據(jù)BITMAPDATABMP文件頭BMP文件頭數(shù)據(jù)結(jié)構(gòu)含有BMP文件的類(lèi)型、文件大小和位圖起始位置等

4、信息。其結(jié)構(gòu)定義如下:typedefstructtagBITMAPFILEHEADER{WORDbfType;//位圖文件的類(lèi)型,必須為BMDWORDbfSize;//位圖文件的大小,以字節(jié)為單位WORDbfReserved1;//位圖文件保留字,必須為0WORDbfReserved2;//位圖文件保留字,必須為0DWORDbfOffBits;//位圖數(shù)據(jù)的起始位置,以相對(duì)于位圖//文件頭的偏移量表示,以字節(jié)為單位}BITMAPFILEHEADER;位圖信息頭BMP位圖信息頭數(shù)據(jù)用于說(shuō)明位圖的尺寸等信息。typedefstructtagBITMAPINF

5、OHEADER{DWORDbiSize;//本結(jié)構(gòu)所占用字節(jié)數(shù)LONGbiWidth;//位圖的寬度,以像素為單位LONGbiHeight;//位圖的高度,以像素為單位WORDbiPlanes;//目標(biāo)設(shè)備的級(jí)別,必須為1WORDbiBitCount//每個(gè)像素所需的位數(shù),必須是1(雙色),//4(16色),8(256色)或24(真彩色)之一DWORDbiCompression;//位圖壓縮類(lèi)型,必須是0(不壓縮),//1(BI_RLE8壓縮類(lèi)型)或2(BI_RLE4壓縮類(lèi)型)之一DWORDbiSizeImage;//位圖的大小,以字節(jié)為單位LONGbi

6、XPelsPerMeter;//位圖水平分辨率,每行像素?cái)?shù)LONGbiYPelsPerMeter;//位圖垂直分辨率,每列像素?cái)?shù)DWORDbiClrUsed;//位圖實(shí)際使用的顏色表中的顏色數(shù)DWORDbiClrImportant;//位圖顯示過(guò)程中重要的顏色數(shù)}BITMAPINFOHEADER;顏色表顏色表用于說(shuō)明位圖中的顏色,它有若干個(gè)表項(xiàng),每一個(gè)表項(xiàng)是一個(gè)RGBQUAD類(lèi)型的結(jié)構(gòu),定義一種顏色。RGBQUAD結(jié)構(gòu)的定義如下:typedefstructtagRGBQUAD{BYTErgbBlue;//藍(lán)色的亮度(值范圍為0-255)BYTErgbGr

7、een;//綠色的亮度(值范圍為0-255)BYTErgbRed;//紅色的亮度(值范圍為0-255)BYTErgbReserved;//保留,必須為0}RGBQUAD;位圖信息位圖信息頭和顏色表組成位圖信息。BITMAPINFO結(jié)構(gòu)定義如下:typedefstructtagBITMAPINFO{BITMAPINFOHEADERbmiHeader;//位圖信息頭RGBQUADbmiColors[1];//顏色表}BITMAPINFO;常用的顯示方法(1)直接寫(xiě)入設(shè)備緩沖區(qū)(速度慢)如:dc.SetPixel(x,y,RBG(255,0,0,));(2)先

8、寫(xiě)入內(nèi)存圖象緩沖區(qū),然后一次性寫(xiě)入設(shè)備緩沖區(qū)(速度快)UINT*buf=newU

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。