基于标准C语言的数字图像处理基本框架2
(2010-04-01 14:03:58)19#ifndef BMP_H_INCLUDED
20#define BMP_H_INCLUDED
21
22#include <ctype.h>
23#include <stdio.h>
24#include <stdlib.h>
25#include <malloc.h>
26#include <string.h>
27
28
31typedef unsigned short WORD;
32typedef unsigned long DWORD;
33typedef long LONG;
34typedef unsigned char BYTE;
35
36
37typedef struct tagBITMAPFILEHEADER {
38 WORD bfType;
39 DWORD bfSize;
40 WORD bfReserved1;
41 WORD bfReserved2;
42 DWORD bfOffBits;
43} BITMAPFILEHEADER;
44
45
46typedef struct tagBITMAPINFOHEADER {
47 DWORD biSize; // 结构长度 40B
48 LONG biWidth;
49 LONG biHeight;
50 WORD biPlanes; // 1
51 WORD biBitCount; // 表示颜色要用到的位数
52 DWORD biCompression; // 压缩格式
53 DWORD biSizeImage; // 位图占用字节数=biWidth'(4的整倍数)*biHeight
54 LONG biXPelsPerMeter; // 水平分辨率
55 LONG biYPelsPerMeter; // 垂直分辨率
56 DWORD biClrUsed; // 本图像用到的颜色数
57 DWORD biClrImportant; // 本图像的重要颜色数
58} BITMAPINFOHEADER;
59
60
61typedef struct tagRGBQUAD {
62 BYTE rgbBlue;
63 BYTE rgbGreen;
64 BYTE rgbRed;
65 BYTE rgbReserved;
66} RGBQUAD;
67
68
69typedef struct tagBITMAPINFO {
70 BITMAPINFOHEADER bmiHeader;
71 RGBQUAD bmiColors[1];
72} BITMAPINFO;
73
74
75typedef struct _Bitmap
76{
77 BITMAPFILEHEADER bmfh;
78 BITMAPINFOHEADER bmih;
79 int width;
80 int height;
81 int bitCount; // 8 或者24
82 int imageSize; // 图像数据大小(imageSize=height*widthStep)字节
83 BYTE* imageData;//排列的图像数据
84 int widthStep; //排列的图像行大小
85}Bitmap;