더북(TheBook)

IppImage 클래스에서 명시적으로 영상을 생성하기 위해서는 CreateImage 멤버 함수를 사용하고, 이미 생성되어 있는 영상 데이터를 없애기 위해서는 DestroyImage 함수를 사용한다. 이들 함수의 원형은 다음과 같다.

void CreateImage(int w, int h);
• void DestroyImage();

CreateImage 함수의 인자는 생성할 영상의 가로와 세로 크기이다. CreateImage 함수와 DestroyImage 함수 구현부는 앞서 설명한 생성자 및 소멸자와 거의 유사하다. 소스 4-11을 참고하라.

소스 4-11 IppImage 클래스 - 생성과 소멸(IppImage.h)
template<typename T>
void IppImage<T>::CreateImage(int w, int h)
{
    DestroyImage();

    width = w;
    height = h;

    pixels = new T*[sizeof(T*) * height];
    pixels[0] = new T[sizeof(T) * width * height];

    for (int i = 1; i < height; i++)
        pixels[i] = pixels[i - 1] + width;

    memset(pixels[0], 0, sizeof(T) * width * height); // 픽셀 값 초기화
}

template<typename T>
void IppImage<T>::DestroyImage()
{
    if (pixels != NULL) {
        delete[] pixels[0];
        delete[] pixels;
        pixels = NULL;
    }

    width = height = 0;
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.