본문 바로가기
배워보자!!/Opencv

[Opencv] Mfc bmp 이미지 로드하기

by norinda 2019. 6. 17.
728x90

안녕하세요~

opencv로 시작해보기 전에

mfc에 Picture Control에 이미지 로드하는 프로그램을 하나 만들었습니다.

이미지를 로드한추에 모니터 화면 밖으로 드래그 했다 다시 가져오면

이미지가 지워지는 부분을 onpaint에 추가해 수정하였습니다.

 

CRect m_rect;

CDC memDC;

BITMAP bmpInfo;

//

int DLG = IDC_STATIC_PIC;

GetDlgItem(DLG)->GetWindowRect(m_rect);

ScreenToClient(m_rect);

CWnd *pWnd = (CWnd*)GetDlgItem(DLG);

CRect m_rect;

CDC memDC;

BITMAP bmpInfo;

//

int DLG = IDC_STATIC_PIC;

GetDlgItem(DLG)->GetWindowRect(m_rect);

ScreenToClient(m_rect);

CWnd *pWnd = (CWnd*)GetDlgItem(DLG);

CDC *dc = pWnd->GetDC();

memDC.CreateCompatibleDC(dc);

HANDLE m_hImage;

m_hImage = LoadImage(0, ImgFilePath, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);

HBITMAP bmpOld = (HBITMAP)memDC.SelectObject(m_hImage);

GetObject(m_hImage, sizeof(BITMAP), &bmpInfo);

dc->StretchBlt(0, 0, m_rect.Width() - 2, m_rect.Height() - 2, &memDC, 0, 0, bmpInfo.bmWidth, bmpInfo.bmHeight, SRCCOPY);

memDC.SelectObject(bmpOld);

memDC.DeleteDC();

dc->DeleteDC();

DeleteObject(m_hImage);

 

//------------------------------------------------------------------------------------------

 

반응형

댓글