Welcome Guest, you are in: Login

MUST Creative Engineering Laboratory

RSS RSS

Navigation



Technical Doc



Search the wiki
»

MUST Corp.

MUST Corp.

www.must.or.kr

 Microsoft CERTIFIED Partner Software Development, Web Development, Data Platform

 Microsoft Small Business Specialist

MCSD

Microsoft Certified IT Professional

Microsoft Certified Professional Developer

Page History: RAW file and BMP file

Compare Page Revisions



« Older Revision - Back to Page History - Newer Revision »


Page Revision: 2010/08/09 11:57


BMP format

파일 헤드의 구조체

Typedef struct tagBITMAPFILEHEADER
{
	WORD		bfType;		// ”BM”이라는 값을 저장
	DWORD	bfSize;		// Byte단위의 전체파일 크기
	WORD		bfReserved1;		// 예약된 변수
	WORD		bfReserved1; 		// 예약된 변수
	DWORD	bfOffBits;		// 영상 데이터까지의 거리
} BITMAPFILEHEADER;

영상 헤드의 구조체

Typedef struct tagBITMAPINFOHEADER
{
	DWORD	biSize;			// 구조체의 크기
	LONG		biWidth;		// 픽셀 단위의 영상 폭
	LONG		biHeight; 		// 영상의 높이
	WORD		biPlanes;		// 비트 플레인 수(항상 1)
	WORD		biBitCount;		// 픽셀당 비트 수
	DWORD	biCompression;		// 압축 여부
	DWORD	biSizeImage;		// 영상의 크기(바이트 단위)
	LONG		biXPelsPerMeter; 	// 가로 해상도
	LONG		biYPelsPerMeter; 	// 세로 해상도
	DWORD	biClrUsed;		// 실제 사용 색상 수
	DWORD	biClrImportant;	// 중요한 색상 인덱스
} BITMAPINFOHEADER;

Palette의 구조체

Typedef struct tagRGBQUAD
{
	BYTE		rgbBlue;		// 파란색
	BYTE		rgbGreen;		// 녹색
	BYTE		rgbRed;		// 빨강색
	BYTE		rgbReserved; 		// 예약된 변수
} RGBQUAD;

RGBQUAD	hRGB[256];

이미지 반전

  • 거꾸로 저장된 이미지를 반전시켜 저장

for (i=0; i<biHeight; i++) {
	for (j=0; j<biWidth; j++) {
		GrayImg[i*biWidth+j] = lpMem[(biHeight-i-1)*rwsize+j];
	}
}

  • 가로 줄의 길이는 항상 4Byte의 배수가 되어야 함

#define WIDTHBYTES(bits)	(((bits)+31)/32*4)   // 4Byte 배수로 변환

rwsize = WIDTHBYTES(biBitCount*biWidth); 	// 호출시


MUST Creative Engineering Laboratory

ImageImage Image Image

Image Image Image Image Image Image Image

Copyright © 2010 MUST Corp. All rights reserved. must@must.or.kr
This Program is released under the GNU General Public License v2. View the GNU General Public License v2 or visit the GNU website.