打开图片获取RGB或者BGR数据后显示图片
CStatic* videoWall = (CStatic*)GetDlgItem(ID_VIDEO_WALL);
显示
CRect rc;
videoWall->GetWindowRect(&rc);
int nResult = ::StretchDIBits( videoWall->GetDC()->m_hDC,
0,
0,
rc.Width(),//rc.right - rc.left,
rc.Height(),//rc.top,
0, m_videoplay->imageFrame->height,
m_videoplay->imageFrame->width, -m_videoplay->imageFrame->height,
m_videoplay->imageFrame->imageData,
m_bmphdr,
DIB_RGB_COLORS,
SRCCOPY);
如果图像失真了用如下代码
CRect rc;
videoWall->GetWindowRect(&rc);
HDC hdc = videoWall->GetDC()->m_hDC;
SetStretchBltMode(hdc, STRETCH_HALFTONE); //必加,StretchBlt, StretchDIBits可以对图像数据进行拉伸, 压缩显示失真
int nResult = ::StretchDIBits( hdc,
0,
0,
rc.Width(),//rc.right - rc.left,
rc.Height(),//rc.top,
0, m_videoplay->imageFrame->height,
m_videoplay->imageFrame->width, -m_videoplay->imageFrame->height,
m_videoplay->imageFrame->imageData,
m_bmphdr,
DIB_RGB_COLORS,
SRCCOPY);
如果图像显示的是倒着的用如下代码
CRect rc;
videoWall->GetWindowRect(&rc);
HDC hdc = videoWall->GetDC()->m_hDC;
SetStretchBltMode(hdc, STRETCH_HALFTONE); //必加,StretchBlt, StretchDIBits可以对图像数据进行拉伸, 压缩显示失真
int nResult = ::StretchDIBits( hdc,
0, 0,
rc.Width(),
rc.Height(),
0, m_videoplay->imageFrame->height,
m_videoplay->imageFrame->width, -m_videoplay->imageFrame->height,
m_videoplay->imageFrame->imageData, m_bmphdr, DIB_RGB_COLORS, SRCCOPY);
原文地址:
http://write.blog.csdn.net/postedit/19042521