zoukankan      html  css  js  c++  java
  • 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);
    

      

  • 相关阅读:
    区块链学习(2)钱包
    区块链学习(1)密钥,公钥和地址
    Ubuntu下安装和开启telnet
    ubuntu下的ppa源使用
    tensorflow中手写识别笔记
    交叉熵解读
    Ubuntu下对executable (application/x-executable)文件创建快捷方式
    Numpy学习笔记(四)
    pycharm问题总结
    Numpy学习笔记(三)
  • 原文地址:https://www.cnblogs.com/mypsq/p/5956066.html
Copyright © 2011-2022 走看看