더북(TheBook)

4.1.1 IppDib와 IppImage 클래스

이 책에서는 영상을 표현하는 용도로 두 개의 클래스를 만들어 사용할 것이다. 하나는 IppDib 클래스이고, 다른 하나는 IppImage 클래스이다. 각 클래스 이름 앞에 붙은 Ipp는 Image Processing Programming의 앞 글자를 딴 것이며, 이 책에서 만들 영상 처리 클래스와 함수 이름 앞에는 모두 Ipp라는 접두사를 붙일 것이다. 이렇게 함으로써 이 책에서 만든 클래스와 함수를 다른 라이브러리 함수들과 쉽게 구분할 수 있을 것이다. IppDibIppImage 두 클래스 모두 영상을 표현할 수 있는 기능을 가지고 있지만, 그 역할은 조금 다르다. 그림 4-1은 IppDibIppImage 클래스의 역할을 간략하게 보여준다.

그림 4-1 IppDib와 IppImage의 주요 역할

먼저 IppDib 클래스에 대해 알아보자. IppDib 클래스는 그 이름에서 유추할 수 있듯이 DIB 구조를 표현하기 위한 클래스이다. 내부적으로 DIB 구조 전체를 표현하는 메모리 공간을 가지고 있으면서 주로 영상의 화면 출력 기능을 담당할 것이다. 아무래도 Windows 응용 프로그램의 특성상 화면에 영상을 그리는 일이 매우 빈번하게 일어나므로, DIB 구조를 표현하는 클래스가 있으면 DIB 화면 출력 함수에서 곧바로 사용할 수 있어서 편리하다. IppDib 클래스에서 제공할 기본적인 기능들은 다음과 같다.

① 비트맵 생성과 소멸

② BMP 파일 입출력(불러오기 및 저장하기)

③ 비트맵 화면 출력

④ 클립보드 지원(복사 및 붙여넣기)

⑤ 기타 유용한 기능(연산자 재정의, 비트맵 정보 제공 등)

IppDib 클래스는 다양한 색상 수의 비트맵을 처리할 수 있다. 색상 수가 2, 4, 256인 비트맵과 트루컬러 비트맵을 모두 표현할 수 있으며 화면에 정상적으로 출력할 수 있다. ④번의 기능은 영상 처리에 있어 반드시 필요한 기능은 아니지만 클립보드를 사용할 수 있으면 Photoshop 같은 다른 영상 편집 프로그램과의 자료 교환이 용이하기 때문에 영상을 분석하는 작업에 큰 도움을 줄 수 있다.

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