더북(TheBook)

9.4.3 좌우 대칭과 상하 대칭 메뉴 만들기

ImageTool 프로그램에 영상의 좌우 대칭과 상하 대칭 기능을 위한 메뉴 항목과 메뉴 이벤트 처리 함수를 추가해보자. Visual Studio 리소스 뷰에서 IDR_ImageToolTYPE 메뉴 항목을 더블 클릭하여 메뉴 편집 창이 나타나게 한 후, [이미지] 팝업 메뉴 맨 아래에 [좌우 대칭]과 [상하 대칭] 메뉴 항목을 추가하자. 두 메뉴 항목의 속성은 표 9-17을 참고하라.

표 9-17 [좌우 대칭], [상하 대칭] 메뉴 항목 속성

ID

Caption

ID_IMAGE_MIRROR

좌우 대칭(&M)...

ID_IMAGE_FLIP

상하 대칭(&F)...

메뉴 항목을 추가하였으면, 이제 이 메뉴에 대한 메뉴 이벤트 처리 함수를 추가하자. [좌우 대칭]과 [상하 대칭] 메뉴 항목에 대한 이벤트 처리기 마법사에 입력할 정보는 표 9-18을 참고하라. 새로 추가된 OnImageMirror 함수와 OnImageFlip 함수에 입력할 소스 코드는 소스 9-15에 나타내었다.

표 9-18 [좌우 대칭], [상하 대칭] 메뉴 이벤트 처리기 정보

명령 이름(ID)

처리 클래스

메시지 형식

처리기 이름

ID_IMAGE_MIRROR

CImageToolDoc

COMMAND

OnImageMirror

ID_IMAGE_FLIP

CImageToolDoc

COMMAND

OnImageFlip

소스 9-15 [좌우 대칭], [상하 대칭] 메뉴 이벤트 처리 함수(ImageToolDoc.cpp)
void CImageToolDoc::OnImageMirror()
{
    CONVERT_DIB_TO_BYTEIMAGE(m_Dib, imgSrc)
    IppByteImage imgDst;
    IppMirror(imgSrc, imgDst);
    CONVERT_IMAGE_TO_DIB(imgDst, dib)

    AfxPrintInfo(_T("[좌우 대칭] 입력 영상: %s"), GetTitle());
    AfxNewBitmap(dib);
}

void CImageToolDoc::OnImageFlip()
{
    CONVERT_DIB_TO_BYTEIMAGE(m_Dib, imgSrc)
    IppByteImage imgDst;
    IppFlip(imgSrc, imgDst);
    CONVERT_IMAGE_TO_DIB(imgDst, dib)

    AfxPrintInfo(_T("[상하 대칭] 입력 영상: %s"), GetTitle());
    AfxNewBitmap(dib);
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.