4.3.3 영상 생성과 소멸
IppDib 클래스와 마찬가지로 IppImage 클래스는 다수의 생성자와 소멸자를 갖는다.
• IppImage(); // (1) • IppImage(int w, int h); // (2) • IppImage(const IppImage<T>& img); // (3) • ~IppImage(); // (4)
(1)번의 기본 생성자에서는 모든 멤버 변수를 0 또는 NULL로 초기화한다. (1)번 생성자로 생성된 IppImage 객체는 영상 정보는 포함하고 있지 않은 상태이다. 만약 특정 크기의 영상을 생성하면서 초기화하려면 (2)번 형태의 생성자를 사용하면 된다. (2)번 생성자는 가로 w, 세로 h 크기만큼의 영상을 만들고, 픽셀 값은 모두 0으로 초기화한다. (3)번은 복사 생성자이고, (4)번은 소멸자이다. 소멸자에서는 pixels 멤버 변수 값을 조사하여 NULL이 아니면 동적 할당된 메모리를 해제한다. 생성자 및 소멸자의 실제 구현 코드는 소스 4-10에 나타내었다.
소스 4-10의 생성자에서 영상 데이터를 생성하는 코드와 소멸자에서 메모리를 해제하는 코드에 대해서는 이 책의 1.2절의 ‘변형된 2차원 배열 동적 할당’에서 설명한 바 있다. 소스 4-10과 같은 방식으로 픽셀 데이터 메모리 공간을 할당하면 영상의 픽셀 정보에 1차원 배열 방식뿐만 아니라 2차원 배열 방식으로도 접근할 수 있어서 유용하다.