VC下BMP的显示方法(二)
3 BMP 文件的几种显示方法
3. 1 直接写像素
Visual C + + 的CDC 类有一个成员函数Set Pixel ( int x , int y , COLORREF crColor ) 可以直接在视区坐标(x ,y) 点设置成所要显示的颜色crColor .只要在OnDraw ( ) 中加入循环写点颜色代码即可,如:
for (x = 0 x < nWidth x + + )
for (y = 0 y < nHeight y + + )
pDC - > Set Pixel (x ,y ,nColor)
BMP 位图文件可在文档序列化过程中加载到内存并由其头部信息计算出位图宽度nWidth 和高度nHeight 以及各像素点的颜色值nColor .这种方法简单,不用涉及复杂的调色板操作,但显示速度慢且可看出写点过程。
3. 2 从资源中装入位图
在VC 开发环境的资源编辑器里可将要显示的BMP 位图文件加载到资源中,并用资源ID 来标识它,在应用的视类的成员函数OnDraw(CDC 3 pDC) 中显示,如:
CDC 3 hMemDC = new CDC;
Cbitmap 3 hBitmap = new Cbitmap
hBitmap = LoadBitmap ( ID-BMPSOURCE) / / ID-BMPSOURCE 为资源ID
hMemDC - > CreateCompatibleDC(pDC)
hMemDC - > SelectObject (hBitmap)
pDC - >BitBlt (0 ,0 ,nWidth ,nHeight ,hMemDC ,0 ,0 ,SRCCOPY)
由于ID-BMPSOURCE 为资源ID ,BMP 位图文件不能在应用运行时装入。
3. 1 直接写像素
Visual C + + 的CDC 类有一个成员函数Set Pixel ( int x , int y , COLORREF crColor ) 可以直接在视区坐标(x ,y) 点设置成所要显示的颜色crColor .只要在OnDraw ( ) 中加入循环写点颜色代码即可,如:
for (x = 0 x < nWidth x + + )
for (y = 0 y < nHeight y + + )
pDC - > Set Pixel (x ,y ,nColor)
BMP 位图文件可在文档序列化过程中加载到内存并由其头部信息计算出位图宽度nWidth 和高度nHeight 以及各像素点的颜色值nColor .这种方法简单,不用涉及复杂的调色板操作,但显示速度慢且可看出写点过程。
3. 2 从资源中装入位图
CDC 3 hMemDC = new CDC;
Cbitmap 3 hBitmap = new Cbitmap
hBitmap = LoadBitmap ( ID-BMPSOURCE) / / ID-BMPSOURCE 为资源ID
hMemDC - > CreateCompatibleDC(pDC)
hMemDC - > SelectObject (hBitmap)
pDC - >BitBlt (0 ,0 ,nWidth ,nHeight ,hMemDC ,0 ,0 ,SRCCOPY)
由于ID-BMPSOURCE 为资源ID ,BMP 位图文件不能在应用运行时装入。