#include <stdio.h>
#include <malloc.h>
#include <math.h>
#include <windows.h>
#define BM 19778// 位图的标志
//打开的文件路径
#define ORIGIN_BMP_PATH "D:\\ubuntuShare\\test\\仿射图像\\灰度图处理\\原始.bmp"
//处理之后的图像
#define PROCESS_BMP_PATH "D:\\ubuntuShare\\test\\仿射图像\\灰度图处理\\处理后.bmp"
//构建BMP位图文件头
typedef struct tagBMPFILEHEADER
{ // bmfh
unsigned short bfType;
unsigned long bfSize;
unsigned short bfReserved1;
unsigned short bfReserved2;
unsigned long bfOffBits;
}__attribute__((packed))BMPFILEHEADER;
//构建BMP位图信息头
typedef struct tagBMPINFOHEADER
{ // bmih
unsigned long biSize;
long biWidth;
long biHeight;
unsigned short biPlanes;
unsigned short biBitCount;
unsigned long biCompression;
unsigned long biSizeImage;
long biXPelsPerMeter;
long biYPelsPerMeter;
unsigned long biClrUsed;
unsigned long biClrImportant;
}__attribute__((packed))BMPINFOHEADER;
//判断是否是位图,在0-1字节
int IsBitMap(FILE *fp)
{
unsigned short s;
fread(&s,1,2,fp);
printf("读取位图格式为:%x\n",s);
if(s == BM)
return 1;
else
return 0;
}
//获得图片的宽度,在18-21字节
long getWidth(FILE *fp)
{
long width;
fs