더북(TheBook)

4.3.6 RGBBYTE 클래스 정의

RGBBYTE 클래스는 트루컬러 영상의 픽셀 정보를 처리하기 위해 만든 자료형으로써 내부적으로 파란색Blue, 녹색Green, 빨간색Red 성분의 양을 표현한다. DIB 색상 테이블에서 색상을 표현하기 위해 RGBQUAD라는 자료형을 사용하지만, 이 자료형을 그대로 사용하기에는 은근히 불편한 점이 있다. RGBQUAD 구조체에서 r, g, b 색상을 표현하는 필드 이름이 rgbRed, rgbGreen, rgbBlue로 되어 있어서 코딩할 때 귀찮은 점이 있고, 또한 rgbReserved라는 여분의 필드를 가지고 있기 때문에 메모리의 낭비도 있을 수 있다. 그러므로 정확하게 3바이트로 R, G, B 색 성분을 표현할 수 있는 클래스를 만들어 사용하려고 한다. RGBBYTE 클래스의 기본 구조는 다음과 같다.

class RGBBYTE
{
public:
    BYTE b;
    BYTE g;
    BYTE r;
    ...
};

RGBBYTE 클래스의 멤버 변수로는 BYTE 타입의 변수 b, g, r 세 개가 있으며, 접근 권한은 public으로 지정하여 프로그램 어디에서든 쉽게 사용할 수 있도록 하였다. 멤버 변수 선언 순서가 우리 입에 익숙한 r, g, b 대신 b, g, r 순서로 되어 있음에 주의하기 바란다.

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