对于24位bmp图片,每一个像素点存放着此点的RGB值。首先定义一个结构体,包含红(red)、绿(green)、蓝(blue)这三个字段,如下:
- //像素颜色值
- typedef struct tagPOINT{
- BYTE b;
- BYTE g;
- BYTE r;
- } POINT;
- POINT **pix;
根据bmp图像宽与高,为指针变量动态分配内存空间,如下所示:
- //为标准图像每一个像素申请内存
- pix = (POINT **)malloc(sizeof(POINT*)*bi_in.biHeight);
- for(i=0;i<bi_in.biHeight;i++)
- *(pix+i)=(POINT*)malloc(sizeof(POINT)*bi_in.biWidth);
读取图像每一像素点处的RGB值至pix变量中,如下:
- //读取图像数据
- for(i=0;i<bi_in.biHeight;i++)
- for(j=0;j<bi_in.biWidth;j++)
- fread(*(pix+i)+j,sizeof(POINT),1,fi);