如何使用C++的读取文件流读取一个24位真彩色的BMP文件到一个数组当中

如何使用C++的读取文件流读取一个24位真彩色的BMP文件到一个数组当中

1.读取文件。
使用System.IO命名空间加的一个类库。读取一个文件可以按文本的方式读取,也可以按二进制流的方式读取,按二进制流的方式读取,返回的结果就是一个字节数组。
byte[] bmps = System.IO.File.ReadAllBytes("a.bmp");

2.所谓路径。
路径是文件系统的一个概念,对于一个Windows文件系统来说,路径是个树形结构,每棵树都有一个根节点。
把硬盘分成数个分区(C:,D:,E:……),每个分区又可以建立数个文件夹,在文件夹下面可以建立其他文件夹或者文件。其中每个盘符就是这个盘的文件系统树的根节点。
Windows系统采用了树状目录结构,即Windows系统不仅允许在目录中存放文件,而且允许在一个目录中建立它的下级目录,称为子目录;如果需要,用户可以在子目录中再建立该子目录的下级目录;……。这样在一个磁盘上,它的目录结构可能是由一个根目录和若干个子目录以及子目录的子目录……所构成的。
有了树状目录结构,我们常把同一应用系统的文件集中在一个子目录中,或者把同一个类型的文件集中在一个子目录中,或者为不同的用户设立不同的子目录,各人使用各自的子目录,互不干涉。
2.文件标识符
有了树状目录结构,在一个盘中要指明一个文件,不仅要给出该文件的文件名,还应给出该文件的路径——查找途径。当你要计算机做事时,你就要告诉计算机从何处去拿,然后放在何处,这就好像你寄信时在信封上写上收信人与写信人的地址,而不能光写姓名。 Windows中路径是指从根目录(或者当前目录)开始,到达指定的文件所经过的一组目录名,如果路径中的第一个符号是反斜杠(“\”),则其表示根目录。各个目录名之间也用反斜杠(“\”)相互分隔。

所谓绝对路径就是一个文件的完整路径,即从根目录(就是盘符)开始,到达指定文件所经过的一组目录名。
相对路径就是以当前路径为参考,进行查找,其中.代表当前目录,..代表上级目录。
假设程序在d:\abc目录下面,它要使用d:\abc\edf目录下面的一个文件file1.txt,那么
绝对路径就是d:\abc\edf\file1.txt;
相对路径就是:edf\file1.txt
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-10-24
这很简单。打开-->读取---->关闭。

如何使用C++的读取文件流读取一个24位真彩色的BMP文件到一个数组...
1.读取文件。使用System.IO命名空间加的一个类库。读取一个文件可以按文本的方式读取,也可以按二进制流的方式读取,按二进制流的方式读取,返回的结果就是一个字节数组。byte[] bmps = System.IO.File.ReadAllBytes("a.bmp");2.所谓路径。路径是文件系统的一个概念,对于一个Windows文件系统来说,...

如何使用C++的读取文件流读取一个24位真彩色的BMP文件到一个数组...
} BITMAPINFO;四、数据读取和颜色分离 Bmp文件有个重要特性,那就是对于数据区域而言,每行的数据它必须凑满4字节,如果没有满,则用冗余的数据来补齐。这个特性直接影响到我们读取位图数据的方法,因为在我们看来(x,y)的数据应该在 y*width+x这样的位置上 但是因为会有冗余信息 那么必须将width用w...

用C++完成一个程序,能读取BMP图象文件...
BITMAPFILEHEADER fileHead;fileHead.bfType = 0x4D42;\/\/bmp类型 \/\/bfSize是图像文件4个组成部分之和 fileHead.bfSize= sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER)+ colorTablesize + lineByte*height;fileHead.bfReserved1 = 0;fileHead.bfReserved2 = 0;\/\/bfOffBits是图像文件前3个部分...

摄像机标定:c++怎么读取txt文件命名的jpg格式图片,并且用于摄像机标定...
ifstream fin("calibdata.txt"); \/* 标定所用图像文件的路径 *\/ ofstream fout("caliberation_result.txt"); \/* 保存标定结果的文件 *\/ \/\/读取每一幅图像,从中提取出角点,然后对角点进行亚像素精确化 cout << "开始提取角点………"; int image_count = 0; \/* 图像数量 *\/ Size image_size; \/* ...

如何用C++获取一张bmp图片(24位)的RGB量及长宽
bmWidthBytes + x*bi.bmBitsPixel\/8;int out = RGB(pBit[n+2],pBit[n+1],pBit[n]);\/\/定位到数据中获取颜色信息 GdiplusShutdown(gdiplusToken);\/\/关闭GDI+ } 这里是用GDI+加载位图,也可以用第三方库加载位图获取位图数据然后直接定位像素,使用的时候记得加GDI+的头文件,否则编译不过 ...

关于怎么用C++读取bmp图片
1、图片文件是有固定格式的,像BMP图片是文件头+位图的颜色数据。文件头一般在读取的时候是使用下面的代码:BITMAPFILEHEADER fileheader={0}; fread(&fileheader,sizeof(fileheader),1,fp); if(fileheader.bfType!=0x4D42) \/\/ 判断是否为BMP图片 { fclose(fp); return ; } ...

用C++ 读取bmp信息,求代码
return 1;} void MazeToArray(bmpMaze maze){ \/\/将图片像素信息读取到Ma数组中 int status,i=0,x,y,n=8,j=0,line;line=maze.datasize\/maze.height;for(x=maze.height-1;x>=0;x--){ for(y=0;y<maze.width;y++){ \/\/获取这个点是黑的还是白的 status=maze.bmp[i]&(int)pow(2,...

求助c++读取BMP文件
这时你在运行一下试试。还有,24位位图每个像素用3个字节表示。你的256像素*256像素的图像的实际占用的字节数应是256*256*3 = 196608,这正是biSizeImage的值!bmp文件分为四个部分:文件信息头、位图信息头、调色板、位图信息数据。你在读信息头文件后,应该读调色板数据。对于真彩色图像,因为没有...

怎么用C语言读入、转存一个 BMP图片啊。。。
给你C++的代码吧呵呵,C的也差不多,稍微修改一下就行了 主要是你要了解BMP文件的结构,就是文件头那里所包含的信息,这里用了BITMAPINFOHEADER等现成的结构体来处理,BMP的文件头百度一下就知道的啦,很多资料 include "fstream.h"\/\/24bit bitmap bool CBitmapWindow::LoadFile (char ...

怎么用Visual C++读取BMP格式图像?
Bitmap文件格式...BITMAPFILEHEADER BITMAPINFOHEADER 调色板 位图数据 如果定义高度为正数则数据从下向上存储,否则从上向下。每行的数据要4字节对齐。

相似回答
大家正在搜