16,472
社区成员
发帖
与我相关
我的任务
分享
Bitmap* CImageEngView::LoadImage(IplImage* pCVimg)
{
if (pCVimg){
PixelFormat format = PixelFormat24bppRGB;
switch (pCVimg->nChannels)
{
case 2:
format = PixelFormat16bppRGB565;
break;
case 3:
format = PixelFormat24bppRGB;
break;
case 4:
format = PixelFormat32bppARGB;
break;
}
Bitmap* pBMP = new Bitmap(pCVimg->width, pCVimg->height,pCVimg->widthStep,format,(BYTE*)pCVimg->imageData);
if (pCVimg->origin == 1) pBMP->RotateFlip(RotateNoneFlipY);
return pBMP;
}
return NULL;
}
void CImageEngView::OnDraw(CDC* /*pDC*/)
{
Bitmap* pGDIbitmap = LoadImage(GetDocument()->m_curImage);
if (pGDIbitmap != NULL){
REAL x = (REAL)GetScrollPos(SB_HORZ);
REAL y = (REAL)GetScrollPos(SB_VERT);
Graphics graphics(GetDC()->GetSafeHdc());
graphics.DrawImage(pGDIbitmap,-x,-y,(REAL)pGDIbitmap->GetWidth(),(REAL)pGDIbitmap->GetHeight());
}
}