改进:不再从参考图像读调色板,程序内部创建调色板 #include "stdio.h" #include "Windows.h" unsigned char *pBmpBuf;//读入图像数据的指针 int bmpWidth;//图像的宽 int bmpHeight;//图像的高 //RGBQUAD *pColorTable;//颜色表指针 int biBitCount;//图像类型,每像素位数 /***************************************** * 函数名称: * saveBmp() * *函数参数: * char *bmpName-文件名字及路径 * unsigned char *imgBuf-待存盘的位图数据 * int width-以像素为单位待存盘位图的宽 * int height-以像素为单位待存盘位图高 * int biBitCount-每像素所占位数 * RGBQUAD *pColorTable-颜色表指针 *返回值: * 0为失败,1为成功 * *说明:给定一个图像位图数据、宽、高、颜色表指针及每像素所占的位数等信息, * 将其写到指定文件中 ***********************************************************************/ bool saveBmp(char *bmpName, unsigned char *imgBuf, int width, int height, int biBitCount, RGBQUAD *pColorTable) { //如果位图数据指针为0,则没有数据传入,函数返回 if(!imgBuf) return 0; //颜色表大小