没有合适的资源?快使用搜索试试~ 我知道了~
用C++编程实现BMP文件格式的读取
4星 · 超过85%的资源 需积分: 11 26 下载量 115 浏览量
2009-04-13
20:07:54
上传
评论 2
收藏 2KB TXT 举报
温馨提示
试读
2页
用C++编程实现BMP文件格式的读取,此代码可以直接在c++上面运行
资源推荐
资源详情
资源评论
用C++编程实现BMP文件格式的读取
读取函数:
int ReadBMPFile(char * FileName)
{
//创建文件句柄
HANDLE hFile = ::CreateFile(FileName,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if(hFile == 0)
{
printf("不能打开文件,请重新选择!\n");
return 0;
}
//读取图像文件
DWORD WriteNum;
BITMAPFILEHEADER BFH; //文件头
ReadFile(hFile,&BFH,14,&WriteNum,NULL);//读取文件头,共14个字节
if((BFH.bfType != 'MB')||(WriteNum != sizeof(BITMAPFILEHEADER)))
{
printf("不是BMP位图文件或数据有误!\n");
return 0;
}
nLen = GetFileSize(hFile,NULL)-sizeof(BITMAPFILEHEADER); //获取文件的长度
lpBitmap= new BYTE[nLen];//存放图像,包括图像的信息头、调色板和像素数据
ReadFile(hFile,lpBitmap,nLen,&WriteNum,NULL); //读取图像数据
//设置全局变量的值
BITMAPINFOHEADER *BIH = ((BITMAPINFOHEADER *)lpBitmap);
//图像文件的信息头
nWidth = BIH->biWidth; //图像的宽度
nHeight = BIH->biHeight; //图像的高度
nColorBits = BIH ->biBitCount; //图像的颜色数
读取函数:
int ReadBMPFile(char * FileName)
{
//创建文件句柄
HANDLE hFile = ::CreateFile(FileName,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if(hFile == 0)
{
printf("不能打开文件,请重新选择!\n");
return 0;
}
//读取图像文件
DWORD WriteNum;
BITMAPFILEHEADER BFH; //文件头
ReadFile(hFile,&BFH,14,&WriteNum,NULL);//读取文件头,共14个字节
if((BFH.bfType != 'MB')||(WriteNum != sizeof(BITMAPFILEHEADER)))
{
printf("不是BMP位图文件或数据有误!\n");
return 0;
}
nLen = GetFileSize(hFile,NULL)-sizeof(BITMAPFILEHEADER); //获取文件的长度
lpBitmap= new BYTE[nLen];//存放图像,包括图像的信息头、调色板和像素数据
ReadFile(hFile,lpBitmap,nLen,&WriteNum,NULL); //读取图像数据
//设置全局变量的值
BITMAPINFOHEADER *BIH = ((BITMAPINFOHEADER *)lpBitmap);
//图像文件的信息头
nWidth = BIH->biWidth; //图像的宽度
nHeight = BIH->biHeight; //图像的高度
nColorBits = BIH ->biBitCount; //图像的颜色数
资源评论
- zhang_pianer2011-09-26不全,只是一部分子函数……
- xj876543212014-06-13不是很全~~~大概看看吧~~
- frankiepengbo2012-12-11确实不全,没法直接运行,的自己改一改才行
renzhenedzq
- 粉丝: 3
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功