



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、BMP:包括BITMAPFILEHEADER(位图文件头)、BITMAPINFOHEADER(位图信息头)、Palette(调色板)、ImageData(位图数据)构成。DDB:是设备相关位图文件,结构如下:Typedef struct tagBITMAPInt bmType;/通常为0Int bmWidth;/像素点宽度Int bmHeight;/像素点高度Int bmWidthBytes;/每行数据的字节数,必为偶数BYTE bmPlanes;/显示设备的色位面数BYTE bmBitsPixel;/每像素的位数Void FAR *bmBits;/指向像素数据的指针;位图必须在同类设备中显示,并且此设备在位平面或彩色上与原设备有同样的色彩安排,否则色彩可能完全失真。DIB是设备无关位图文件,由3部分构成:BITMAPINFOHEADER(位图信息头)、Palette(调色板)、ImageData(位图数据)。它的结构和BMP文件结构相似,它实际就是BMP文件去掉BITMAPFILEHEADER(位图文件头),即一个BITMAPINFOHEADER(位图信息头)结构后面接上调色板再加上图像数据。BMP文件有两种显示方法,首先将BMP文件读成DIB格式,当显示时,一种是直接将DIB显示,另一种是将DIB转化为DDB,再显示DDB。几个数据类型:Cfile LPCTSTR UINT几个函数:1、virtual BOOL Open( LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pError = NULL );Return Value:Nonzero if the open was successful; otherwise 0. The pError parameter is meaningful only if 0 is returned.LpszFileName:A string that is the path to the desired file. NOpenFlags: defines the files sharing and access mode. It specifies the action to take when opening the file.PError:A pointer to an existing file-exception object that will receive the status of a failed operation.如:Open(filename,CFile:modeRead|CFile:shareDenyNone,NULL)=0) 2、int AfxMessageBox( LPCTSTR lpszText, UINT nType = MB_OK, UINT nIDHelp = 0 );3、The HeapAlloc function allocates a block of memory from a heap. The allocated memory is not movable. LPVOID HeapAlloc( HANDLE hHeap, / handle to the private heap block DWORD dwFlags, / heap allocation control flags DWORD dwBytes / number of bytes to allocate);4、memcpy:Copies characters between buffers5、HeapFree:frees a memory block allocated from a heap by the HeapAlloc or HeapReAlloc function. 6、SetDIBitsToDevice :sets the pixels in the specified rectangle on the device that is associated with the destination device context using color data from a device-independent bitmap (DIB). int SetDIBitsToDevice( HDC hdc, / handle to device context int XDest, / x-coordinate of upper-left corner of / dest. rect. int YDest, / y-coordinate of upper-left corner of / dest. rect. DWORD dwWidth, / source rectangle width DWORD dwHeight, / source rectangle height int XSrc, / x-coordinate of lower-left corner of / source rect. int YSrc, / y-coordinate of lower-left corner of / source rect. UINT uStartScan, / first scan line in array UINT cScanLines, / number of scan lines CONST VOID *lpvBits, / address of array with DIB bits CONST BITMAPINFO *lpbmi, / address of structure with bitmap info. UINT fuColorUse / RGB or palette indexes);二、新建一多(单)文档应用程序Getbmp三、在*Doc.h中添加几个变量:BITMAPFILEHEADER bf;/文件头BITMAPINFOHEADER bi;/信息头RGBQUAD *quad; /调色板BYTE *lpBuf; /图像数据BITMAPINFO *pbi;int flag; /标志是否打开了bmp文件int numQuad; /调色板数目四、对C*Doc类添加消息处理函数:OnOpenDocument()CString filename;CFile file;/打开文件对话框filename=lpszPathName;if (file.Open(filename,CFile:modeRead|CFile:shareDenyNone,NULL)=0)/读取文件失败AfxMessageBox(无法打开文件!,MB_OK,0);return 1;/读取文件头file.Read(&bf,sizeof(bf);if(bf.bfType!=0x4d42) /BMAfxMessageBox(非BMP文件!,MB_OK,0);return 1;/判断文件是否损坏if (file.GetLength()!=bf.bfSize)AfxMessageBox(文件已损坏,请检查!,MB_OK,0);return 1;/读取文件信息头file.Read(&bi,sizeof(bi);/计算调色板数目numQuad=0;if (bi.biBitCount24)numQuad=1flag=1)SetDIBitsToDevice(dc.m_hDC, /DIB将输出的设备描述表0, /设备描述表中位图输出起始逻辑x坐标0, /设备描述表中位图输出起始逻辑y坐标pDoc-bi.biWidth, /DIB的宽度pDoc-bi.biHeight, /DIB的高度0, /DIB开始读取输出的像素数据的x位置0, /DIB开始读取输出的像素数据的y位置0, /DIB中像素的水平行号,它对应lpBits内存缓冲区第一行数据pDoc-bi.biHeight, /DIB的行数,对应包含在由lpBits所指内存缓冲区中的数据pDoc-lpBuf, /包含像素数据的内存缓冲区的指针pDoc-pbi, /指向初始化了的BITMAPINFO数据结构的指针
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 期货市场交易心理学的应用研究考核试卷
- 耐火土石矿山环境保护与绿色开采技术应用考核试卷
- 纸质户外广告材料设计与制造考核试卷
- 无线广播电视传输中的信号传输信号覆盖优化方法考核试卷
- 森林经营与管护的森林采伐与土地管理考核试卷
- 天津理工大学《媒介批评与文化影响》2023-2024学年第一学期期末试卷
- 珠海三中高二下学期期中考试文科化学试题
- 山东省菏泽市名校2025届新初三开学摸底考(全国I卷)化学试题含解析
- 四川长江职业学院《计算机地图制图》2023-2024学年第二学期期末试卷
- 山东工业职业学院《体育游戏组织与编创》2023-2024学年第二学期期末试卷
- 高血压脑病-PPT课件
- GB∕T 17832-2021 银合金首饰 银含量的测定 溴化钾容量法(电位滴定法)
- 低成本自动化的开展与案例77页PPT课件
- 人防工程竣工资料(全套)
- 《电子病历模板》word版参考模板
- (高清版)JGJ123-2012既有建筑地基基础加固技术规范
- 蒸汽管道试运行方案2015.9.18
- 梅州市部分饮用水源保护区调整方案
- 拌合站、水泥罐、搅拌站地基计算
- “重庆环保”标志说明
- 钢结构钢梁连接节点计算
评论
0/150
提交评论