C++读取设置图片RGB

C++读取设置图片RGB

ID:37914924

大小:39.00 KB

页数:6页

时间:2019-06-02

C++读取设置图片RGB_第1页
C++读取设置图片RGB_第2页
C++读取设置图片RGB_第3页
C++读取设置图片RGB_第4页
C++读取设置图片RGB_第5页
资源描述:

《C++读取设置图片RGB》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、CFilemyfile;    myfile.Open(filename,CFile::modeRead

2、CFile::typeBinary);    charbuff[GetLength+1]={0};    myfile.Read(buff,myfile.GetLength());     send(socket,buff,myfile.GetLength(),0); 读取RGBvoidReadBitMap(CStringstrFileName,intx,inty){CFilefile;if(!f

3、ile.Open(strFileName,CFile::modeRead

4、CFile::typeBinary)){return;}BITMAPFILEHEADERBitmapHead;if(file.Read(&BitmapHead,sizeof(BITMAPFILEHEADER))!=sizeof(BITMAPFILEHEADER)){return;}if(BitmapHead.bfType!=0x4d42){return;}BITMAPINFOHEADERBitmapInfo;if(file.Re

5、ad(&BitmapInfo,sizeof(BITMAPINFOHEADER))!=sizeof(BITMAPINFOHEADER)){return;}if(BitmapInfo.biBitCount!=24){return;}DWORDdataByte=BitmapHead.bfSize-BitmapHead.bfOffBits;unsignedchar*pic_buf=(BYTE*)newchar[dataByte];BITMAPINFO*pic_pbmi=(BITMAPINFO*)newchar

6、[sizeof(BITMAPINFO)];memcpy(pic_pbmi,&BitmapInfo,sizeof(BITMAPINFOHEADER));intpic_rowSize=WidthBytes(pic_pbmi->bmiHeader.biWidth*24);if(file.Read(pic_buf,dataByte)!=dataByte){return;}file.Close();deletepic_buf;}pic_buf里存储的就是r,g,b值,buf[0]是r,buf[1]是g,buf[

7、2]是b的,这是第一个点的像素,下来buf[3]buf[4]buf[5]是第二个的,以此类推。 网上代码很多啊C/C++code   CFilecf;   if(!cf.Open(pathname,CFile::modeRead))     returnfalse;   DWORDbitfilesize=cf.GetLength()-sizeof(BITMAPFILEHEADER);/////bitfilesize为除去文件头剩余文件的大小   unsignedchar*pbitfile=newuns

8、ignedchar[bitfilesize];  //////pbitfile指向了文件信息头的位置     if(!pbitfile)              ////如果内存申请失败,就返回     returnfalse;   BITMAPFILEHEADERbfh;   if(cf.Read(&bfh,sizeof(BITMAPFILEHEADER))!=sizeof(BITMAPFILEHEADER) //文件头读取     /*

9、

10、bfh.bfType!='BM'*/

11、

12、(cf.Read

13、(pbitfile,bitfilesize)!=bitfilesize)){//判断文件格式,和读取文件内容       ::MessageBox(NULL,_T("ERROR"),NULL,MB_OKCANCEL);       delete[]pbitfile;   ///读取失败,就删除申请的内存       return0;   }   if(m_pbmp!=NULL)  /////防止多次载入图片,而导致内存的泄露     deletem_pbmp;   if(m_palette.GetSa

14、feHandle()!=NULL) /////同上     m_palette.DeleteObject();   BITMAPINFOHEADER*pbih=(BITMAPINFOHEADER*)pbitfile;////pbih指向了文件信息头   m_bitid=pbih;                   /////付给了成员变量,m_biid指向了文件信息头   m_prq=(RGBQUAD*)&pbitfile[sizeof(BITMAPI

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。