“Visual Studio 2010에서 OpenCV MFC 프로젝트 만들기(http://deios.kr/400)”에 이어 이번에는 파일 저장기능을 구현해 보도록 하겠습니다.
파일 열기는 OnOpenDocument()함수를 재정의 했던거 기억하시죠? 마찬가지로 파일 저장은 OnSaveDocument()함수를 재정의 하면 됩니다.
이젠 그림만 봐도 아시겠죠?
return CDocument::OnSaveDocument(lpszPathName);
부분을 다음과 같이 수정합니다.
USES_CONVERSION; return m_CvvImage.Save(W2A(lpszPathName));
저번에도 말씀드렸지만 OpenCV 라이브러리가 char *형을 받기 때문에 W2A매크로를 사용해 줍니다.
이번에는 새 이름으로 저장하는 기능을 구현해 보겠습니다.
새 이름으로 저장하기는 메뉴에 있죠? 메뉴를 클릭했을 경우 동작할 함수를 만들기 위해서 이번에는 이벤트 부분을 수정해 줘야 합니다.
다음과 같이 코딩하면 간단한 “새 이름으로 저장”기능이 구현됩니다.
void CMFC_OpenCVView::OnFileSaveAs() { // TODO: 여기에 명령 처리기 코드를 추가합니다. CMFC_OpenCVDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); CFileDialog dlgFile(TRUE); CString fileName; const int c_cbBuffSize = (100 * (MAX_PATH + 1)) + 1; dlgFile.GetOFN().lpstrFile = fileName.GetBuffer(c_cbBuffSize); dlgFile.GetOFN().nMaxFile = c_cbBuffSize; int chk = dlgFile.DoModal(); fileName.ReleaseBuffer(); if(chk == IDOK) pDoc->OnSaveDocument(dlgFile.GetPathName()); }
cfile25.uf.1943DA554D1CB24A102126.pdfcfile10.uf.203E64554D1CB2571D493E.zip