19,468
社区成员
发帖
与我相关
我的任务
分享
CClientDC aDC(this);
OnPrepareDC(&aDC);
HBITMAP hBitmap=(HBITMAP)::LoadImage(NULL,lpszPathName,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
bitmap->Attach(hBitmap);
BITMAP BMP;
bitmap->GetBitmap(&BMP);
bitmap->Detach();
CDC memDC;
memDC.CreateCompatibleDC(&aDC);
bitmap->CreateCompatibleBitmap(&aDC,BMP.bmWidth,BMP.bmHeight);
CBitmap* pOldBitmap=memDC.SelectObject(bitmap);
COLORREF m_Color;
CRect rc;
CBrush brush;
for(int i=0;i<BMP.bmWidth;i++)
for(int j=0;j<BMP.bmHeight;j++)
{
m_Color=memDC.GetPixel(i,j);
rc.left=i*Width;
rc.top=j*Width;
rc.right=rc.left+Width;
rc.bottom=rc.top+Width;
brush.CreateSolidBrush(m_Color);
CBrush* pOldBrush=aDC.SelectObject(&brush);
aDC.FillRect(rc,&brush);
aDC.SelectObject(pOldBrush);
}
memDC.SelectObject(pOldBitmap);
memDC.DeleteDC();