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

时间:2025-04-30

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

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文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219