MFC Picture控件加载图片

时间:2021-09-11 16:26:01
	CStatic *pPic = (CStatic*)GetDlgItem(IDC_PICTURE);
CBitmap bitmap;
bitmap.LoadBitmapW(IDB_BITMAP2);
pPic->SetBitmap((HBITMAP)bitmap.GetSafeHandle());
//在Picture的Type调为Bitmap

  

像素修改:

	CStatic *pPic = (CStatic*)GetDlgItem(IDC_PICTURE);
CBitmap bitmap;
bitmap.LoadBitmapW(IDB_BITMAP2);
BITMAP mBitmap;
bitmap.GetBitmap(&mBitmap); HBITMAP hBitmap = (HBITMAP)bitmap.GetSafeHandle(); CImage image;
image.Attach(hBitmap);
int mWidth = image.GetWidth();
int mHeight = image.GetHeight();
_cprintf("width = %d\nheight = %d\n", image.GetWidth(), image.GetHeight());
for (int i = 0; i < mWidth; i++)
{
for (int j = 0; j < mHeight; j++)
{
if (i>=10&&i<=30)
image.SetPixel(i, j, RGB(20,50,90));
}
} CDialogEx::OnPaint();
CClientDC dc(this);//选定当前画图环境
DrawLine(&dc); pPic->SetBitmap(hBitmap);

 使用CImage绘制PNG图片

        CDC *pDC = GetDC();
CImage Image;
Image.Load(_T("C:/C_Project/MFCApplication1/Debug/flow.png"));
if (Image.IsNull())
{
MessageBox(_T("没加载成功"));
}
if (Image.GetBPP() == 32)
{
for (int i = 0; i < Image.GetWidth(); i++)
{
for (int j = 0; j < Image.GetHeight(); j++)
{
byte *pByte = (byte*)Image.GetPixelAddress(i, j);
pByte[0] = pByte[0] * pByte[3] / 255;
pByte[1] = pByte[1] * pByte[3] / 255;
pByte[2] = pByte[2] * pByte[3] / 255;
}
}
}
Image.Draw(pDC->m_hDC, 0, 0);