




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一编程显示BMP图像 矿大信电学院蔡利梅 一 实验目的 了解和掌握BMP图像文件格式 了解用C 语言读取BMP格式的图像文件 并进行显示 为下一步编程进行图像处理打下基础 二 实验要求 掌握BMP图像的格式 掌握如何读取并显示图像 三 实验原理 BMP图像文件格式 BITMAPFILEHEADERBITMAPINFOHEADER调色板RGBQUAD实际的位图数据ImageData 三 实验原理 编程函数简介virtualBOOLOpen LPCTSTRlpszFileName UINTnOpenFlags CFileException pError NULL virtualUINTRead void lpBuf UINTnCount voidUpdateAllViews CView pSender LPARAMlHint 0L CObject pHint NULL CallthisfunctionafterthedocumenthasbeenmodifiedCOLORREFSetPixel intx inty COLORREFcrColor 四 实验步骤 生成应用程序框架采用VS2005的框架环境选择 文件 新建 项目 在打开的对话框中 项目类型选 VisualC MFC 模板选择 MFC应用程序 在对话框的下侧 输入名称 Clm 和项目的位置 点击确定 进入MFC应用程序向导 在MFC应用程序向导中 进行各项设置应用程序类型选择 单文档 其余各项采用默认设置在最后一步 点击 完成 选择 调试 开始执行 不调试 菜单命令 生成一个简单的Windows界面 四 实验步骤 设置 文件 打开 菜单函数打开项目工作区 资源视图 双击 Menu 项下的 IDR MAINFRAME 在右侧的编辑区选中 文件 打开 菜单 点击右键 在弹出菜单中选择 添加事件处理程序 进入事件处理程序向导 消息类型 选择 COMMAND 类列表 中选择 CClmDoc 类 可以设置函数名称 点击 添加编辑 自动转到文档类实现文件 ClmDoc cpp 中该函数处 四 实验步骤 添加变量项目工作区 解决方案资源管理 标签页 双击ClmDoc h文件打开 添加以下变量 public BITMAPFILEHEADER fileheader BITMAPINFOHEADER infoheader CStringFileName CFilefile BYTE BMPData RGBQUAD pal boolflag intlinebytes 四 实验步骤 添加宏定义 计算存储一行像素需要的字节数在OnFileOpen 函数前 定义宏定义 defineWIDTHBYTES x x 31 32 4 在CClmDoc类构造函数中初始化 添加以下代码 flag false fileheader NULL infoheader NULL pal NULL BMPData NULL 五 程序代码 编辑voidCClmDoc OnFileOpen 函数 添加以下代码 CFileDialogdlg TRUE 0 0 OFN HIDEREADONLY T 位图文件 bmp 所有文件 if dlg DoModal IDOK FileName dlg GetPathName if fileheader deletefileheader if infoheader deleteinfoheader if pal deletepal if BMPData deleteBMPData if flag flag false if file Open FileName CFile modeRead return fileheader newBITMAPFILEHEADER 1 infoheader newBITMAPINFOHEADER 1 file Read fileheader 14 if fileheader bfType 0 x4D42 return 五 程序代码 file Read infoheader 40 if infoheader biCompression 0 return linebytes WIDTHBYTES infoheader biBitCount infoheader biWidth if infoheader biBitCount 8 pal newRGBQUAD 256 BMPData newBYTE linebytes infoheader biHeight file Read pal 256 4 file Read BMPData linebytes infoheader biHeight flag true 五 程序代码 elseif infoheader biBitCount 24 BMPData newBYTE linebytes infoheader biHeight file Read BMPData linebytes infoheader biHeight flag true elsereturn file Close UpdateAllViews NULL 五 程序代码 打开ClmView cpp文件 编辑OnDraw CDC pDC 函数 若参数为 CDC pDC 这种形式 去掉pDC前后的 和 添加如下代码 if pDoc flag true intx y p unsignedcharr g b pixel for y 0 yinfoheader biHeight y for x 0 xinfoheader biWidth x 五 程序代码 if pDoc infoheader biBitCount 8 p x y pDoc linebytes pixel pDoc BMPData p r pDoc pal pixel rgbRed g pDoc pal pixel rgbGreen b pDoc pal pixel rgbBlue pDC SetPixel x pDoc infoheader biHeight 1 y RGB r g b 五 程序代码 elseif pDoc infoheader biBitCoun
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025湖南株洲市石峰区公益性岗位上半年(第三批)招聘3人考前自测高频考点模拟试题有完整答案详解
- 2025江苏盐城幼儿师范高等专科学校招聘专业技术人员3人(二)考前自测高频考点模拟试题及参考答案详解1套
- 2025年河北顺德投资集团有限公司公开招聘劳务派遣人员4名模拟试卷带答案详解
- 感冒咳嗽用药知识培训
- 2025贵州安顺简嘎乡人民政府招聘乡村公益性岗位考试参考题库及答案解析
- 2025广东广州市黄埔区大沙街横沙股份经济联合社第一次招聘10人考前自测高频考点模拟试题及完整答案详解一套
- 2025福建省海峡人才报社有限责任公司招聘见习生考前自测高频考点模拟试题及答案详解(各地真题)
- 2025贵州省农业农村厅参加第十三届贵州人才博览会引才9人考前自测高频考点模拟试题及答案详解(名师系列)
- 智能基因编辑平台创新创业项目商业计划书
- 2025年芜湖宜居投资(集团)有限公司专业技术招聘2人模拟试卷及一套参考答案详解
- 视觉设计基础课件
- 短视频拍摄与后期制作(中职)PPT完整全套教学课件
- GB/T 42695-2023纺织品定量化学分析木棉与某些其他纤维的混合物
- 大飞机C919:追梦五十载,“破茧化蝶”
- 某培训基地可行性研究报告
- YY/T 1617-2018血袋用聚氯乙烯压延薄膜
- GB/T 4339-2008金属材料热膨胀特征参数的测定
- GB/T 39965-2021节能量前评估计算方法
- GB/T 3934-2003普通螺纹量规技术条件
- 尿动力学检查操作指南2023版
- 五星领导人课件
评论
0/150
提交评论