用C++读取、修改和保存位图
该示例用C++读取、修改位图,通过它我们可以了解位图的文件结构,对图像处理的理解很有帮助。下面是全部的源码:
#include <stdio.h>
#include <fstream.h>
#include <windows.h>
/***********************变量的定义***********************************/
unsigned char* pBmpBuf; //读入图像数据的指针
int bmpWidth; //图像的宽度
int bmpHeight; //图像的高度
RGBQUAD* pColorTable; //颜色表指针
int biBitCount; //图像类型,像素位数
/****************************************************************************
读取图像的位图数据、宽度、高度、颜色表及像素位数,并存放在全局变量中
*****************************************************************************/
bool readBmp(char* bmpName)
{
FILE* fp = fopen(bmpName,"rb"); //以二进制读的方式打开指定的图像文件
if(fp == 0) return 0;
//跳过位图文件头
fseek(fp,sizeof(BITMAPFILEHEADER),0);
//定义位图信息头结构变量,读取位图信息头进内存,存放在变量infoHead中
BITMAPINFOHEADER infoHead;
fread(&infoHead,sizeof(BITMAPINFOHEADER),1,fp);