- 1、本文档共28页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机图形学实验二.
计算机科学系实验报告(首页)
课程名称 计算机图形学 班级 12网络2 实验名称 VC存取BMP图像及其几何变换 教导教师 吴志攀 姓名 李文森 学号 1214080613213 日期 2014 .11.21
一、实验目的
1. 掌握VC中BMP图像的存取方法;
2. 掌握BMP图像平移、旋转、变比等几何变换。
二、实验设备与环境
TC2.0,Windows XP
三、实验内容、程序清单及运行结果
1.打开VC++ 6.0,选择File|New进入界面。在Projects中选择MFC AppWinzard(exe),在Project name中输入项目名称,本例为ReadBMP,在Location中输入项目要保存的文件夹。点击“OK”进入下一步。如下图2-1所示。
图2-1
2.选择文档类型。在本例中使用的是单文档视图结构,所以这里选择Single document。其余部分设置使用VC++ 6.0的默认设置,点击“Finish”完成项目创建。如下图2-2所示:
图2-2
3.为了将BMP中的数据读入到内存中,在项目中导入专门处理BMP文件头和数据的文件:DIBAPI.H和DIBAPI.CPP,在其中实现对BMP文件的大部分处理。
在工作区“FileView”选项卡的“Header Files”中点右键,在“添加文件到目录”添加“DIBAPI.H”文件。如下图2-3所示:
图2-3
在工作区“FileView”选项卡的“Source Files”中点右键,在“添加文件到目录”添加“DIBAPI.CPP”文件。
并在“ReadBMPDoc.h”添加头文件dibapi.h,如下所示:
#include dibapi.h
4.在CReadBMPDoc类中添加保护成员变量CPalette* m_palDIB,HDIB m_hDIB和CSize m_sizeDoc。m_hDIB用于保存当前BMP图像句柄,m_palDIB用于指向BMP图像对应的调色板。
protected:
HDIB m_hDIB;
CPalette* m_palDIB;
CSize m_sizeDoc;
5.为了取得保存在当前文档中的HDIB和Palette数据,在“ReadBMPDoc.h”的CReadBMPDoc类中添加方法:GetHDIB,GetDocPalette和GDocSize。如下所示:
// Attributes
public:
HDIB GetHDIB() const
{ return m_hDIB; }
CPalette* GetDocPalette() const
{ return m_palDIB; }
CSize GetDocSize() const
{ return m_sizeDoc; }
在CReadBMPDoc.cpp的构造函数中初始化:
// 初始化变量
m_hDIB = NULL;
m_palDIB = NULL;
m_sizeDoc = CSize(1,1);
6.响应类CReadBMPDoc OnOpenDocument事件,以实现打开文件的操作。
从View|ClassWizard进入MFC ClassWizard界面,在Message Maps选项中完成消息映射。下图2-4所示:
图2-4
在BOOL CReadBMPDoc::OnOpenDocument(LPCTSTR lpszPathName)函数中添加如下代码:
//if (!CDocument::OnOpenDocument(lpszPathName))
//return FALSE;
// TODO: Add your specialized creation code here
//return TRUE;
CFile file;
CFileException fe;
// 打开文件
if (!file.Open(lpszPathName, CFile::modeRead | CFile::shareDenyWrite, fe))
{
// 失败
ReportSaveLoadException(lpszPathName, fe,
FALSE, AFX_IDP_FAILED_TO_OPEN_DOC);
// 返回FALSE
return FALSE;
}
DeleteContents();
// 更改光标形状
BeginWaitCursor();
// 尝试调用ReadDIBFile()读取图像
TRY
{
m_hDIB = ::ReadDIBFile(fi
您可能关注的文档
最近下载
- 2024.10政法干警锻造新时代政法铁军专题研讨班发言材料(5篇).docx VIP
- 医疗器械出库复核程序.docx
- 董责险-PPT_可编辑.ppt VIP
- 后勤岗位竞聘演讲稿PPT.pptx
- 历年华二自招考试数学试卷汇编(共5套,附答案).pdf
- 高州风土人情资料.ppt
- 食品加工技术专业及农产品加工类专业群建设项目.pdf
- 高一英语必修一单元精练Unit 3 Family Matters 重点单词变形词组短语句型(外研版2019).pdf VIP
- 英汉语言对比(华中科技大学)中国大学MOOC慕课 客观题题库答案.docx
- 《回弹法检测水泥基灌浆材料抗压强度技术规程》标准全文.docx VIP
文档评论(0)