VC++数字图像处理编程(16)

时间:2026-01-16   来源:未知    
字号:

{//判断图像数据是否为空;

AfxMessageBox("图像数据不能为空,请首先读取图像数据!");

return;

}

lpDIBHdr=( BITMAPINFOHEADER *)GlobalLock(pDoc->m_hDIB);//得到图像的位图头信息

lpDIBBits=lpDIBHdr+sizeof(BITMAPINFOHEADER)+256*sizeof(RGBQUAD);//获取保存图像像素值的缓冲区的指针;

if(pDoc-> m_palDIB)

{//如果存在调色板信息,实现逻辑调色板;

OldPal=pDC-> SelectPalette(pDoc-> m_palDIB,TRUE);

PDC->RealizePalette();

}

else

{

AfxMessageBox("图像的调色板数据不能为空,请首先读取调色板信息!"); return ;

}

SetStretchBltMode(hDC,COLORONCOLOR);

//显示图像

BSuccess=StretchDIBBits(hDC,0,0,pDoc-> m_sizeDoc.cx, pDoc->

m_sizeDoc.cy,

0, pDoc-> m_sizeDoc.cy,0, pDoc-> m_sizeDoc.cy,

lpDIBBits,(LPBITMAPINFO)lpDIBHdr,

DIB_RGB_COLORS,

SRCCOPY);

GlobalUnlock(pDoc->m_hDIB);

If(OldPal)//恢复调色板;

PDC->SelectPalette(OldPal,FALSE);

retrun;

}

四、 小结

在本期讲座里我们主要介绍了如何操作灰度位图,它具有较强的代表性,同时为后续的图像处理编程的学习作了必要的准备工作,经过学习,对于如何操作其它类型的BMP格式的图像文件,可以达到举一反三的作用。

VC数字图像处理编程讲座之四

BMP图像显示的特效操作

上期讲座中我们主要讲述了BMP图像数据的存取、图像的显示和调色板的操作等内容,在上面的学习基础上,我们可以进一步深化,学习并掌握图像特效显

VC++数字图像处理编程(16).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:19 元/月 原价:99元
低至 0.1 元/份 每月下载300
全站内容免费自由复制
VIP包月下载
特价:19 元/月 原价:99元
低至 0.1 元/份 每月下载300
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)