더북(TheBook)

녹색 배경의 BITMAPINFOHEADER 값들은 앞서 살펴본 gray_4x4.bmp 파일과 거의 유사하다. 다만 트루컬러 비트맵이니만큼 biBITCount 값에서 차이가 있다. biBITCount 값은 0x18이며, 이는 십진수 24에 해당한다. 픽셀 하나의 색상을 표현하기 위해 R, G, B 색상 성분 각각 8비트를 사용하기 때문이며, 이 경우 실제 표현 가능한 색상 수는 224= 16,777,216이다.

color_4x4.bmp 파일은 biBITCount 값이 24로 설정되어 있는 트루컬러 비트맵이기 때문에 색상 테이블이 존재하지 않는다. 그러므로 BITMAPINFOHEADER 구조체 바로 다음에는 실제 픽셀의 색상 정보를 저장하는 픽셀 데이터의 배열이 나타난다.

트루컬러 비트맵의 픽셀 데이터 배열은 3바이트 단위로 분석해야 한다. 그림 3-10에서 파란색 픽셀 데이터 영역의 맨 처음 3바이트는 0x80 0x80 0x80으로 구성되어 있는데, 이는 그림 3-9에 나타난 원본 영상의 맨 마지막 줄 색상이다. 또한 픽셀 데이터 배열의 마지막 네 픽셀 값은 0x00 0x00 0xFF로 되어 있으며, 이는 원본 영상의 첫 번째 줄 색상인 빨간색을 나타낸다. 트루컬러 비트맵의 픽셀 데이터도 상하가 뒤집힌 상태bottom-up로 저장되어 있음을 확인할 수 있다. 나머지 픽셀들의 색상 정보도 그림 3-9에 부합하는지 각자 살펴보기 바란다.

Note | RGB 색 모델

컴퓨터에서는 빛의 3원색인 빨간색(Red), 녹색(Green), 파란색(Blue)을 이용하여 색을 표현한다. 각각의 색 성분은 0부터 255 사이(16진수로는 0x00~0xFF)의 값을 가질 수 있으며, 값이 클수록 해당 색 성분을 많이 가지고 있음을 의미한다. 컴퓨터에서 이 값을 표현하기 위해서는 R, G, B 각각 1바이트를 필요로 하며, 결과적으로 트루컬러 1픽셀의 색상은 3바이트로 표현이 가능하다. 아래는 R, G, B 색 성분의 조합으로 표현되는 대표적인 색상이다.

0xRRGGBB

색상

0xRRGGBB

색상

0x000000

검정(Black)

0xFF0000

빨강(Red)

0x0000FF

파랑(Blue)

0xFF00FF

자주(Magenta)

0x00FF00

초록(Green)

0xFFFF00

노랑(Yellow)

0x00FFFF

시안(Cyan)

0xFFFFFF

하양(White)

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