MFC中picture显示bmp图片方法

		pThis->m_pBmpinfo = new BITMAPINFO;//m_pBmpinfo类型为BITMAPINFO
		memset(pThis->m_pBmpinfo , 0 , sizeof(BITMAPINFO));
		BITMAPINFOHEADER *bmpinfoheader = &(pThis->m_pBmpinfo->bmiHeader);
		bmpinfoheader->biSize = sizeof(BITMAPINFOHEADER);
		bmpinfoheader->biWidth = pFrameHead->iWidth;//图象宽度
		bmpinfoheader->biHeight = pFrameHead->iHeight;//图象高度
		bmpinfoheader->biBitCount = 24;//RGB使用3个字节
		bmpinfoheader->biCompression = BI_RGB;
		bmpinfoheader->biSizeImage = pFrameHead->iHeight*pFrameHead->iWidth*3;//RGB每个颜色占一个字节所以乘以3
		bmpinfoheader->biClrImportant = 0;//填0即可
		bmpinfoheader->biClrUsed = 0;//填0即可
		bmpinfoheader->biXPelsPerMeter = 0;//填0即可
		bmpinfoheader->biYPelsPerMeter = 0;//填0即可
		bmpinfoheader->biPlanes = 1;//填1即可
		CRect rect;
		pThis->m_pDc = pThis->GetDlgItem(IDC_STATIC_VIEW)->GetDC();//得到对话框中picture空间的DC句柄,IDC_STATIC_VIEW为picture控件的资源ID
		pThis->GetDlgItem(IDC_STATIC_VIEW)->GetClientRect(&rect);
		SetStretchBltMode(pThis->m_pDc->GetSafeHdc(),COLORONCOLOR);//调整一下显示模式:DC句柄,彩色模式
		//将图片缩放到画布大小进行显示
		StretchDIBits(
			pThis->m_pDc->GetSafeHdc(),//DC控件picture的窗口句柄
			rect.left , //picture控件的左上角横坐标
			rect.top , //picture控件的左上角横坐标
			rect.Width() , //picture控件宽度
			rect.Height() , //picture控件高度
			0 , //在picture控件中,从图片的(0,0)的位置开始显示
			0 , 
			pFrameHead->iWidth ,//显示的图片宽度 
			pFrameHead->iHeight , //显示图片的高度
			pThis->m_pFrameBuffer , //图片数据空间
			pThis->m_pBmpinfo , //图片数据头
			DIB_RGB_COLORS , //颜色空间
			SRCCOPY);

你可能感兴趣的:(机器视觉)