void CGrayView::Gray(CBitmap* pBmp)
{
CClientDC dc(this);
CDC memDC;
memDC.CreateCompatibleDC(&dc);
CBitmap* pOldBmp=memDC.SelectObject(pBmp);
BITMAP sizeBmp;
pBmp->GetBitmap(&sizeBmp);
COLORREF color;
int r,g,b,a;
for(int i=0;i<sizeBmp.bmHeight;i++)
{
for(int j=0;j<sizeBmp.bmWidth;j++)
{
color=memDC.GetPixel(j,i);
r=GetRValue(color);
g=GetGValue(color);
b=GetBValue(color);
a=(r*30+g*59+b*11)/100;
color=RGB(a,a,a);
memDC.SetPixel(j,i,color);
}
}
memDC.SelectObject(pOldBmp);
memDC.DeleteDC();
}
位图变灰
最新推荐文章于 2024-07-25 17:08:16 发布