VC6.0下bmp位圖的讀取與顯示

VC6.0下bmp位圖的讀取與顯示

ID:38583374

大?。?55.50 KB

頁數(shù):18頁

時(shí)間:2019-06-15

VC6.0下bmp位圖的讀取與顯示_第1頁
VC6.0下bmp位圖的讀取與顯示_第2頁
VC6.0下bmp位圖的讀取與顯示_第3頁
VC6.0下bmp位圖的讀取與顯示_第4頁
VC6.0下bmp位圖的讀取與顯示_第5頁
資源描述:

《VC6.0下bmp位圖的讀取與顯示》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、一.實(shí)驗(yàn)?zāi)康模毫私鈹?shù)字圖像的存儲(chǔ)格式,熟練運(yùn)用某種編程工具語言提供的圖象操作方法。二.實(shí)驗(yàn)內(nèi)容:1.認(rèn)識(shí)數(shù)字圖象2.在VC6.0環(huán)境下,生成MFC應(yīng)用程序框架。3.在已生成的應(yīng)用程序中,加BMP位圖讀取與顯示的代碼,從已有文件中讀取bmp格式文件并在視圖中顯示。三.實(shí)驗(yàn)原理及步驟:(一)基本知識(shí):BMP位圖文件格式BMP位圖文件中主要由4部分內(nèi)容組成:1、文件頭BITMAPFILEHEADER為一STRUCTURE:typedefstructtagBITMAPFILEHEADER{WORDbfType;//文件類型,必須為“BM”或0x424dDWO

2、RDbfSize;//文件大小WORDbfReserved1;//保留WORDbfReserved2;//保留DWORDbfOffBits;//從文件頭到實(shí)際位圖數(shù)據(jù)的偏移字節(jié)數(shù)}BITMAPFILEHEADER,FAR*LPBITMAPFILEHEADER,*PBITMAPFILEHEADER;2、位圖信息頭BITMAPINFOHEADER,定義如下:typedefstructtagBITMAPINFOHEADER{DWORDbiSize;//structuresizeLONGbiWidth;//imagewidthLONGbiHeight;//i

3、mageheightWORDbiPlanes;//valueis1WORDbiBitCount;//colorbitsDWORDbiCompression;//compressionornotDWORDbiSizeImage;//Imagesize=width*height(其中width必須為4的倍數(shù)。LONGbiXPelsPerMeter;//LONGbiYPelsPerMeter;DWORDbiClrUsed;//DWORDbiClrImportant;}BITMAPINFOHEADER,FAR*LPBITMAPINFOHEADER,*PBIT

4、MAPINFOHEADER;1、調(diào)色板typedefstructtagRGBQUAD{BYTErgbBlue;BYTErgbGreen;BYTErgbRed;BYTErgbReserved;}RGBQUAD;用于存放圖像的顏色。1、圖像的實(shí)際數(shù)據(jù)。對(duì)于2色圖,用1位表示像素的值。對(duì)于16色圖,用4位表示像素的值。對(duì)于256色圖,一個(gè)字節(jié)剛好表示1個(gè)像素。對(duì)于用到調(diào)色板的位圖,圖像數(shù)據(jù)就是該像素顏色在調(diào)色板中索引值,對(duì)于真彩色,不用調(diào)色板,三個(gè)字節(jié)的數(shù)據(jù)分別代表圖像的B、G、R。(二)實(shí)驗(yàn)過程:1、打開VC++界面,工程中選擇MFCAppWizard(

5、exe),并在projectname輸入dip,選擇存放project的位置。2、選擇ok,進(jìn)入下一步。選擇singledocument,并在最后CdipView類的基類中選擇CscrollView,使應(yīng)用程序視圖具有滾動(dòng)條。3、在生成的工程中選擇CdipView,對(duì)class視圖進(jìn)行操作,添加成員變量跟成員函數(shù)到相應(yīng)現(xiàn)在的dipview下intm_x;HBITMAPm_Bmp;LPVOIDm_ColorList;LPBYTEm_Image;LPBITMAPINFOHEADERm_DibHead;enumallocate{None,crtalloca

6、te,heapallocate};allocatem_nBmpallocate;allocatem_nImageallocate;DWORDm_ImageSize;intm_nPalette;HANDLEm_hFile;HANDLEm_hMap;LPVOIDm_lpvFile;HPALETTEm_hPalette;HGLOBALm_hGlob;利用ClassWizard向CdipView類中加入如下成員函數(shù)。voidSetPaletteSize(intnBitCount);//設(shè)置調(diào)色板大小voidClear();//清除BOOLReadFile(C

7、File*pFile);//讀取數(shù)據(jù)到內(nèi)存BOOLSetPalette();//當(dāng)前位圖顏色數(shù)大于256設(shè)置調(diào)色板BOOLGetPalette();//創(chuàng)建顏色數(shù)不大于256的調(diào)色板BOOLDibToDC(CDC*pDC,CSizesize);顯示位圖BOOLMemToDib(LPVOIDlmem);//得到內(nèi)存中位圖象素位置CSizeGetDibSize();//返回位圖尺寸1、設(shè)計(jì)一個(gè)名為IDB_BITMAP1的位圖在resourc下單擊右鍵,選擇插入,單擊Bitmap,選擇新建,然后自己新建一個(gè)位圖,保存。2、修改OnDraw和OnInitia

8、lUpdate()函數(shù)設(shè)置滾動(dòng)條的初始化圖形和現(xiàn)實(shí)圖像。1、打開Menu資源,雙擊主菜單,打開菜單資源編輯器

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

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

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(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)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。