- 1、本文档共35页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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)