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\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);

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM