首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

急小弟我做的24位BMP转灰度图,运行出错。望高人指点

2012-01-24 
急,我做的24位BMP转灰度图,运行出错。望高人指点CFilefilefile.Open( F:\\1.bmp ,CFile::modeRead|CFile

急,我做的24位BMP转灰度图,运行出错。望高人指点
CFile   file;
file.Open   ( "F:\\1.bmp ",CFile::modeRead|CFile::shareDenyNone);
        LONG   biWidth;
LONG   biHeight;
BYTE   b,g,r,y;
COLORREF   pixel;
file.Seek   (18,CFile::begin);
file.Read   (&biWidth,4);
file.Seek   (22,CFile::begin);
file.Read   (&biHeight,4);
CDC   *pDC=NULL;
CDC   dcMem;
        CPoint   point;
file.Seek   (54,CFile::begin);
int   i,j;
for   (i=0;i <biHeight;i++)
{
for   (j=0;j <biWidth;j++)
{
  point=(i,j);
  file.Read   (&point,4);
                  pixel=pDC-> GetPixel   (j,biHeight-i);
                  r=GetRValue(pixel);//每个象素点的R分量
  g=GetGValue(pixel);//每个象素点的G分量
  b=GetBValue(pixel);//每个象素点的B分量
  y=0.299*r+0.587*g+0.114*b;//每个象素点的灰度级
  dcMem.SetPixel   (j,biHeight-i,RGB(y,y,y));
}
}
        pDC-> BitBlt(0,0,biWidth,biHeight,&dcMem,0,0,SRCCOPY);
   

编译没问题,就是运行不了
偶是初学者,大家给指点指点哈!

[解决办法]
CDC* pDC = GetDC();
用完了记得ReleaseDC(pDC);

热点排行