더북(TheBook)

6.3.5 감마 보정 메뉴 만들기

감마 보정 메뉴와 메뉴 이벤트 처리기를 추가해보자. 감마 보정을 위한 새 메뉴 항목은 6.2절에서 추가한 [밝기/명암비 조절(&B)...] 메뉴 아래에 추가하자. 새로 추가할 [감마 보정] 메뉴 항목 속성과 메뉴 이벤트 처리기 정보를 표 6-11과 표 6-12에 각각 나타내었다.

표 6-11 [감마 보정] 메뉴 항목 속성

ID

Caption

ID_GAMMA_CORRECTION

감마 보정(&G)...

표 6-12 [감마 보정] 메뉴 이벤트 처리기 정보

명령 이름(ID)

처리 클래스

메시지 형식

처리기 이름

ID_GAMMA_CORRECTION

CImageToolDoc

COMMAND

OnGammaCorrection

OnGammaCorrection 함수에 추가할 코드는 소스 6-15에 나타내었다. 앞에서 만들었던 반전, 밝기/명암비 조절 메뉴에 대한 이벤트 처리 함수와 큰 차이가 없으므로 자세한 설명은 생략한다.

소스 6-15 [감마 보정] 메뉴 이벤트 처리 함수(ImageToolDoc.cpp)
#include "GammaCorrectionDlg.h"void CImageToolDoc::OnGammaCorrection()
{
    CGammaCorrectionDlg dlg;
    if (dlg.DoModal() == IDOK)
    {
        CONVERT_DIB_TO_BYTEIMAGE(m_Dib, img)
        IppGammaCorrection(img, dlg.m_fGamma);
        CONVERT_IMAGE_TO_DIB(img, dib)

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