2015. 7. 28. 06:17ㆍ프로그래밍/ETC
※ DIB : Device Independent Bitmap ( 장치에 독립적인 비트맵 )
※ DDB : Device Dependent Bitmap ( 장치에 종속적인 비트맵 )
DIB의 구조
- DIB는 DDB보다 훨씬 복잡하며 다양한 장치에 사용하기 위해 비트맵 출력에 대한 상세 정보를 포함한다.
- 사실 DIB 내부 구조를 몰라도 단순히 사용만 하는데는 어려움이 없다. 모든 처리가 클래스 내부로 캡슐화 되어 있다.
CBmp B("C:\\...\\imaga.jpg"); B.Draw( hdc, 10, 10 ); |
-DIB 파일은 여러 개의 구조체들로 구성되어 있으며 각 구조체에는 비트맵의 특성에 대해 기술된 멤버가 들어가있다.
BITMAPFILEHEADER 구조체 |
BITMAPINFOHEADER 구조체 |
RGBQUAD 구조체 배열 |
비트 정보 |
BITMAPFILEHEADER 구조체
- DIB 파일의 제일 선두에 있는 구조체
- 파일 형식, 크기 및 레이아웃 등 비트맵 파일 자체에 대한 정보를 포함하는 구조체
원형
typedef struct tagBITMAPFILEHEADER { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; }BITMAPFILEHEADER, FAR *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER; |
매개변수
bfType - The file type; must be BM. 파일의 형태를 지정하는 매직 넘버, BM 이어야만 한다.(0x42, 0x4d)
bfSize - The size, in bytes, of the bitmap file. 비트맵 파일의 크기 (바이트 단위)
bfReserved1, bfReserved2 - Reserved; must be zero.
예약, 0으로 설정, (핫스팟 저장용으로 설계되었으나 사용되지 않음)
bfOffBits
- BITMAPFILEHEADER 구조체의 선두로 부터의 바이트 수(오프셋)
- 이 구조체와 실제 비트맵 데이터와의 오프셋 값을 가진다.
BITMAPFILEHEADER의 크기 + BITMAPINFOHEADER의 크기 + RGBQUAD 구조체 배열의 크기
BITMAPINFOHEADER
- BITMAPFILEHEADER 구조체 바로 뒤에 위치하며 DIB의 크기, 색상 포맷에 관한 정보
그리고 기타 장치 독립성을 보장하는 몇 가지 정보들을 가지는 구조체이다.
(윈도우즈3.0 이상에서 사용되는 장치에 독립적인 비트맵의 치수와 색상 정보를 저장한다.)
원형
typedef struct tagBITMAPINFOHEADER{ |
매개변수 정보
http://www.herdsoft.com/ti/davincie/davp3xo2.htm
RGBQUED 구조체 배열
- 비트맵에서사 용되는 색상 테이블을 정의
typedef struct tagRGBQUAD { BYTE rgbBlue; BYTE rgbGreen; BYTE rgbRed; BYTE rgbReserved; }RGBQUAD; |
'프로그래밍 > ETC' 카테고리의 다른 글
딱딱한 페이지 그만(작성중) (2) | 2015.08.24 |
---|---|
슈퍼 글로벌 변수 (1) | 2015.08.07 |
Unity - PHP 연결 (2) | 2015.07.28 |
자료형 (1) | 2015.07.28 |
Derek Wilson, "더블 버퍼링(Double Buffering), vsync, 그리고 트리플 버퍼링(Triple Buffering)은 무엇인가?" (3) | 2015.06.23 |
FMOD 세팅하기 (0) | 2015.04.24 |
msimg32.lib, GDI (2) | 2015.04.23 |