MFC Picture控件加载图片

	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
height = %d
", 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);

  

原文地址:https://www.cnblogs.com/mypsq/p/5956066.html