VC打开bmp文件,读取信息


 



FILE *fopen( const char *filename, const char *mode );mode一般为"r"或者"w",Opens for reading. Opens an empty file for writing.

fopen("G:\\test.txt",'w'); 可行

filename = dlg.GetPathName(); 可以获得路径

///

fread: Reads data from a stream 从一个流中读数据

Pointer to FILE structure

int fread(void *buffer, int size, int count, FILE *stream);

  参 数:用于接收数据的地址(字符型指针)(buffer) Storage location for data

  单个元素的大小(size) Item size in bytes

  元素个数(count)Maximum number of items to be read

  提供数据的文件指针(stream)

  返回值:成功读取的元素个数




打开文件后读取bmp文件中的数据:

FILE *fp=fopen(filename,"r"); //按照filename的路径打开文件

BITMAPFILEHEADER fileheader;
BITMAPINFO info;

fread(&fileheader,sizeof(fileheader),1,fp); //读取头文件信息

if(fileheader.bfType!=0x4D42)
{
  pDC->TextOut(100,200,"无位图文件 请选择位图文件");
  fclose(fp);
  return ;
}

fread(&info.bmiHeader, sizeof(BITMAPINFOHEADER), 1, fp); /*读取信息头*/
long width=info.bmiHeader.biWidth;
long height=info.bmiHeader.biHeight; //位图高度及宽度
UCHAR *buffer=new UCHAR[info.bmiHeader.biSizeImage]; //位图的大小
fseek(fp,fileheader.bfOffBits,0); //重定位流上的文件指针,接下来的操作将从新位置开始
fread(buffer,info.bmiHeader.biSizeImage,1,fp);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值