BMP 파일
그래픽스 2015. 1. 14. 19:40일단 msdn에 있는 파일헤더 부분
http://msdn.microsoft.com/en-us/library/dd183374(v=vs.85).aspx
인포헤더부분
http://msdn.microsoft.com/en-us/library/dd183376(v=vs.85).aspx
읽어올 BMP가 있음
요래 생겼음 뒤로 더 있지만 후략
일단 앞부분 부터 읽어가면 파일헤더부분에 들어감
typedef struct tagBITMAPFILEHEADER {
WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WROD bfReserved2;
DWORD bfOffBits;
} BITMAPFILEHEADER, *PBITMAPFILEHEADER;
bfType에는 이 파일이 뭔지 구별해주는게 들어있음 비트맵은 보통 0x42 == B, 0x4D == M 이렇게 들어있고 BM이라고 표시되는 부분임
bfSize는 파일의 전체크기를 나타내고 위에서는 0x00000C38 이 들어감 0002~0005임
bfReserved1, 2 거의 사용되지 않고 0이 들어있음 1은 0006~0007 2는 0008~0009
bfOffBits는 현재 위치로부터 실제 데이터가 존재하는곳까지의 거리
그 다음부분은 인포헤더부분이 들어감
typedef struct tagBITMAPINFOHEADER {
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage;
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} BITMAPINFOHEADER, *PBITMAPINFOHEADER;
biSize는 헤더 크기로서 BMP파일의 포맷을 알 수 있음 포맷 버전별로 용량이 다르므로 표기되는게 다름
여기서는 0x00000028로 40 V3버전의 BITMAPINFOHEADER 이라는걸 알 수 있음 자세한건 위키나 검색
biWidth, biHeight는 이미지의 가로와 세로크기 0012~0015까지가 width 0016~0019까지가 height
biPlane는 이미지의 장수(색상 공간의 수) 인데 비트맵은 layer이 없으므로 항상 1임 0x0001
biBitCount는 한 픽셀의 컬러 비트수 여기는 0x0018로 24. True-Color.
biCompression은 압축방식임 보통은 0이 들어감
biSizeImage는 픽셀 정보만 담긴 부분의 크기. 헤더 뺀 그림 부분만의 크기
biXPelsPerMeter, biYPelsPerMeter 은 가로 세로의 해상도, 픽셀숫자를 말함
biClrUsed는 이미지에 사용되는 색상 수인데 여기도 0 (0을 넣으면 해당 비트로 표현할 수 있는 최대 갯수만큼 설정됨)
biClrImportent는 이미지에서 중요하다고 생각되는 색상 수를 기록하는부분 0 (0을 넣으면 모두 중요함)
이 뒤로는 데이터........... 인가?
뭔가 있었던거 같은데 일단 여기까지만
끝
'그래픽스' 카테고리의 다른 글
변환 관련 초간단 정리 (0) | 2015.01.14 |
---|