VC 6.0 이미지 처리 0 - bmp 파일 분석
/ / 이것 은 이미지 처리 의 매우 관건 적 인 단계 입 니 다. 여러분 은 반드시 명확 하 게 알 고 나중에 처리 할 때 뜻 대로 될 것 입 니 다 ~
- 1. BMP 파일 구성
- BMP 파일 은 파일 헤더, 비트 맵 정보 헤더, 색상 정보 와 그래 픽 데이터 네 부분 으로 구성 된다.
BMP 파일 헤더
- BMP 파일 헤더 데이터 구 조 는 BMP 파일 의 유형, 파일 크기 와 비트 맵 시작 위치 등 정 보 를 포함 합 니 다.
- 그 구조 정 의 는 다음 과 같다.
typedef struct tagBITMAPFILEHEADER
{
WORDbfType; // , BM
DWORD bfSize; // ,
WORDbfReserved1; // , 0
WORDbfReserved2; // , 0
DWORD bfOffBits; // ,
// ,
} BITMAPFILEHEADER;
비트 맵 정보 헤더
BMP 。
typedef struct tagBITMAPINFOHEADER{
DWORD biSize; //
LONGbiWidth; // ,
LONGbiHeight; // ,
WORD biPlanes; // , 1
WORD biBitCount// , 1( ),
// 4(16 ),8(256 ) 24( )
DWORD biCompression; // , 0( ),
// 1(BI_RLE8 ) 2(BI_RLE4 )
DWORD biSizeImage; // ,
LONGbiXPelsPerMeter; // ,
LONGbiYPelsPerMeter; // ,
DWORD biClrUsed;//
DWORD biClrImportant;//
} BITMAPINFOHEADER;
색깔 표
- 색상 표 는 비트 맵 의 색상 을 설명 하 는 데 사용 되 며, 표 항목 마다 RGBQUAD 형식의 구조 로 색상 을 정의 합 니 다.RGBQUAD 구조의 정 의 는 다음 과 같다.
typedef struct tagRGBQUAD {
BYTErgbBlue;// ( 0-255)
BYTErgbGreen; // ( 0-255)
BYTErgbRed; // ( 0-255)
BYTErgbReserved;// , 0
} RGBQUAD;
RGBQUAD biBitCount :
biBitCount=1,4,8 , 2,16,256 ;
biBitCount=24 , 。
,BITMAPINFO :
typedef struct tagBITMAPINFO {
BITMAPINFOHEADER bmiHeader; //
RGBQUAD bmiColors[1]; //
} BITMAPINFO;
비트 맵 데이터
- 비트 맵 데 이 터 는 비트 맵 의 모든 픽 셀 값 을 기록 합 니 다. 기록 순 서 는 스 캔 줄 에서 왼쪽 에서 오른쪽으로, 스 캔 줄 사 이 는 아래 에서 위로 입 니 다.비트 맵 의 픽 셀 값 이 차지 하 는 바이트 수:
biBitCount=1 ,8 1 ;
biBitCount=4 ,2 1 ;
biBitCount=8 ,1 1 ;
biBitCount=24 ,1 3 ;
Windows 는 스 캔 줄 이 차지 하 는 바이트 수 를 4 의 배수 (즉, long 단위) 로 규정 하고 부족 한 것 은 0 으로 채 워 야 합 니 다.
스 캔 줄 이 차지 하 는 바이트 수 계산 방법: DataSizePerLine = (biWidth * biBitCount + 31) / 8;
/ / 스 캔 줄 이 차지 하 는 바이트 수 DataSizePerLine = DataSizePerLine / 4 * 4; /바이트 수 는 반드시 4 의 배수 여야 한다.
비트 맵 데이터 의 크기 (압축 되 지 않 은 경우): DataSize = DataSizePerLine * biHeight;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.