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);
编译没问题,就是运行不了
偶是初学者,大家给指点指点哈!
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);
编译没问题,就是运行不了
偶是初学者,大家给指点指点哈!
CBitmap bmp;
bmp.Load("F:\\1.bmp");
dcMem.SelectObject(&bmp);
用完了记得ReleaseDC(pDC);