下载此文档

绘制灰度直方图 源代码.docx


文档分类:IT计算机 | 页数:约14页 举报非法文档有奖
1/14
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/14 下载此文档
文档列表 文档介绍
//:implementationoftheCPointProclass.
//
/////////////////////////////////////////////////////////////////bject)
//
//基本功能:本函数将传入的CDibObject对象中的图像从彩色转换为灰度图像。
//如果进行此调整之前没有指定一个CDibObject对象指针,则必须在
//调整时加以指定。
//
//参数说明:BYTEmGrayType0:Y=++
//1:Y=R
//2:Y=G
//3:Y=B
//CDibObject*pDibObject,默认为NULL。
//
//返回:成功返回TRUE,失败返回FALSE。
//
////////////////////////////////////////////////////////////////////////BOOLCPointPro::MakeGray256(BYTEmGrayType,
CDibObject*pDibObject){
//CDibObject对象指针
if(pDibObject!=NULL)m_pDibObject=pDibObject;
//若未指定CDibObject对象指针返回FALSE
if(m_pDibObject==NULL)return(FALSE);
//低于位的图像不进行处理
if(m_pDibObject->GetNumBits()<8)return(FALSE);
//获取原图像字节宽度和转换后的位色灰度图像的字节宽度
intnOldWidthBytes,nNewWidthBytes;
char*pBuffer=(char*)m_pDibObject->GetDIBPointer(&nOldWidthBytes,8,&nNewWidthBytes);if(pBuffer==NULL)return(FALSE);
//定义变量
BITMAPINFOHEADER*pOldBIH,*pNewBIH;
BITMAPFILEHEADER*pOldBFH,*pNewBFH;
RGBQUAD*pOldRGBPalette,*pNewRGBPalette;unsignedchar*pOldBits,*pNewBits,*pTemp,*pNewTemp;intnNumColors,nNumNewColors;
//获取文件头指针
pOldBFH=(BITMAPFILEHEADER*)pBuffer;
//获取信息头指针
pOldBIH=(BITMAPINFOHEADER*)&pBuffer[sizeof(BITMAPFILEHEADER)];
//获取调色板指针
pOldRGBPalette=(RGBQUAD*)&pBuffer[sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)];
//原图像颜色数
nNumColors=m_pDibObject->GetNumColors();
//新图像颜色数
nNumNewColors=256;
//获取原图像数据指针pOldBits=(unsignedchar*)&pBuffer[sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+nNumColors*sizeof(RGBQUAD)];
//为新图像分配内存
HGLOBALhGlobal;//新图像总字节数DWORDdwSize;
dwSize=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+256*sizeof(RGBQUAD)+
m_pDibObject->GetHeight()*nNewWidthBytes;
hGlobal=::GlobalAlloc(GMEM_MOVEABLE|GMEM_ZEROINIT,dwSize);if(hGlobal==NULL)
{
::GlobalUnlock(m_pDibObject->GetDib());return(FALSE);
}
pBuffer=(char*)::GlobalLock(hGlobal);if(pBuffer==NULL)
{
::GlobalFree(hGlobal);
::GlobalUnlock(m_pDibObject->GetDib());return(FALSE);
}
//获得新图像的文件头指针
pNewBFH=(BITMAPFILEHEADER*)pB

绘制灰度直方图 源代码 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
最近更新