2012第三章 VC++图像编程基础课件.pptVIP

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2012第三章VC图像编程基础课件

第三章 VC++图像编程基础;一、与设备无关位图(DIB) ;;2.BMP文件头 P30;;3.位图信息头;4.颜色表(调色板);;;;二、CDib类库的建立 P40;1. CDib类的设计目标;;;;2. 构造CDib类;class CDib : public CObject { public: RGBQUAD* m_pRGB; // BYTE* m_pData; // UINT m_numberOfColors; //颜色个数 BOOL m_valid; BITMAPFILEHEADER bitmapFileHeader;//文件头 BITMAPINFOHEADER* m_pBitmapInfoHeader; //信息头 BITMAPINFO* m_pBitmapInfo; //位图信息指针 BYTE* pDib; DWORD size; //文件大小;public: CDib(); //无参构造函数 ~CDib(); //析构函数 char m_fileName[256]; char* GetFileName(); //返回位图文件名 BOOL IsValid(); DWORD GetSize(); //位图文件的大小 UINT GetWidth(); //位图的宽度 UINT GetHeight(); //位图的高度 UINT GetNumberOfColors(); /颜色数目 RGBQUAD* GetRGB(); //颜色表首地址 BYTE* GetData(); //图像数据首地址 BITMAPINFO* GetInfo(); //图像信息结构首地址;;文件DIB.CPP包含了CDib类中各函数的实现,代码如下: #include stdafx.h #include cdib.h #include windowsx.h #include math.h CDib::CDib() //定义构造函数 { } CDib::~CDib() //定义析构函数 { GlobalFreePtr(m_pBitmapInfo); //删除该对象中的图像 };BOOL CDib::IsValid() { return m_valid; } char* CDib::GetFileName() { return m_fileName; //文件名 } UINT CDib::GetWidth() { return (UINT) m_pBitmapInfoHeader-biWidth; // } UINT CDib::GetHeight() { return (UINT) m_pBitmapInfoHeader-biHeight; // };//位图文件的大小 DWORD CDib::GetSize() { if (m_pBitmapInfoHeader-biSizeImage != 0) return m_pBitmapInfoHeader-biSizeImage; else { DWORD height = (DWORD) GetHeight(); DWORD width = (DWORD) GetWidth(); return height * width; //计算图像大小 } };//计算颜色数 UINT CDib::GetNumberOfColors() { int numberOfColors; //为实际用到的颜色数 if ((m_pBitmapInfoHeader-biClrUsed == 0) (m_pBitmapInfoHeader-biBitCount 9)) { switch (m_pBitmapInfoHeader-biBitCount) { case 1: numberOfColors = 2; break; case 4: numberOfColors = 16; break; case 8: numberOfColors = 256; } } else numberOfColors = (int) m_pBitmapInfoHeader-biClrUse

文档评论(0)

baa89089 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档