본문 바로가기

API

DDB와 DIB

윈도우즈가 지원하는 비트맵 포맷은 두 가지 종류가 있다. 첫째는 


DDB(Device Dependent Bitmap)


3.0 이전 버전에 사용하였다. 이 비트맵은 출력 장치에 많이 의존되며 몇 가지 제한이 있다. DDB는 이미지의 크기와 색상에 관한 기본적인 정보와 그리고 이미지 데이터만으로 구성되어 있기 때문에 다양한 해상도의 장치에 광범위하게 사용되지 못하며 만들어진 장치 외의 다른 장치에서  제대로 출력되지 못하는 경우가 있다. 예를 들어 256색으로 만들어진 DDB는 다른 장치나 다른 화면모드에서 색상을 제대로 표현하지 못한다. 쉽게 말해 흑백 비트맵은 흑백 장치로만 출력할 수 있고 컬러 비트맵은 컬러 장치에만 출력할 수 있다.


DIB(Device Independent Bitmap)


OS/2 2.0의 프리젠테이션 매니저에서 처음 소개된 비트맵 포맷이며 윈도우즈는 3.0버전부터 이 포맷을 지원하기 시작했다. 이름이 의미하는 바대로 이 포맷은 장치에 독립적이기 때문에 어디에서나 제 모양대로 출력될 수 있다. DIB는 DDB에 비해 색상 테이블과 해상도 정보 등의 추가 정보를 가지므로 장치에 종속되지 않으며 활용 용도가 훨씬 더 광범위하고 호환성이 뛰어나다. 컬러 비트맵을 흑백 프린터로 출력할 수도 있고 색상 수가 조금 틀린 장치로도 출력할 수 있다. 확장자 BMP를 가지는 비트맵 파일들은 모두 DIB 포맷으로 저장된 파일이며 리소스 에디터에서 만드는 비트맵들도 모두 DIB이다. DIB가 DDB보다는 훨씬 더 최신의 포맷이며 다양한 기능을 가지고 있기 때문에 Win32 환경에서 비트맵을 사용하려면 당연히 DDB보다는 DIB를 사용하는 것이 훨씬 더 유리할 것이다. 


※ 그래픽 파일을 직접 다루는 프로그램이 아닌 경우 내부적인 비트맵 처리에는 오히려 DDB가 더 많이 사용되며 사용하기도 쉽다.