資源簡介
圖像馬賽克、窗口切分 圖像漸顯 中間擴張 中間收縮
百葉窗特效 移動 交叉飛入

代碼片段和文件信息
#include?“stdafx.h“
#include?“cdib.h“
#include?“windowsx.h“
#include?“math.h“
#define?WIDTHBYTES(bits)????(((bits)?+?31)?/?32?*?4)?
CDib::CDib()
{
size=0;
}
CDib::~CDib()
{
????GlobalFreePtr(m_pBitmapInfo);
}
void?CDib::LoadFile(const?char*?dibFileName)
{
???strcpy(m_fileNamedibFileName);
????CFile?dibFile(m_fileName?CFile::modeRead);
????dibFile.Read((void*)&bitmapFileHeadersizeof(BITMAPFILEHEADER));
????if?(bitmapFileHeader.bfType?==?0x4d42)
????{
????????DWORD?fileLength?=?dibFile.GetLength();????
?????????size?=?fileLength?-sizeof(BITMAPFILEHEADER);
?????????pDib?=(BYTE*)GlobalAllocPtr(GMEM_MOVEABLE?size);
????????dibFile.Read((void*)pDib?size);
????????dibFile.Close();
????????m_pBitmapInfo?=?(BITMAPINFO*)?pDib;
????????m_pBitmapInfoHeader?=?(BITMAPINFOHEADER*)?pDib;
????????m_pRGB?=?(RGBQUAD*)(pDib?+
m_pBitmapInfoHeader->biSize);
????????int?m_numberOfColors?=?GetNumberOfColors();
????????if?(m_pBitmapInfoHeader->biClrUsed?==?0)
????????????m_pBitmapInfoHeader->biClrUsed?=
????m_numberOfColors;
????????DWORD?colorTableSize?=?m_numberOfColors?*
????????????sizeof(RGBQUAD);
????????m_pData?=?pDib?+?m_pBitmapInfoHeader->biSize
????????????+?colorTableSize;
if?(m_pRGB?==?(RGBQUAD*)m_pData)?//?No?color?table
m_pRGB?=?NULL;
????????m_pBitmapInfoHeader->biSizeImage?=?GetSize();
m_valid?=?TRUE;
????}????
????else
????{
????????m_valid?=?FALSE;
????????AfxMessageBox(“This?isn‘t?a?bitmap?file!“);
????}
}
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->biClrUsed;
????return?numberOfColors;
}
????
BYTE*?CDib::GetData()
{
????return?m_pData;
}
RGBQUAD*?CDib::GetRGB()
{
????return?m_pRGB;
}
BITMAPINFO*?CDib::GetInfo()
{
????return?m_pBitmapInfo;
}
WORD?CDib::PaletteSize(LPBYTE?lpDIB)?
{?
????return?(DIBNumColors(lpDIB)?*?sizeof(RGBTRIPLE));?
}?
WORD?CDib::DIBNumColors(LPBYTE?lpDIB)?
{?
????WORD?wBitCount;??//?DIB?bit?count?
????wBitCount?=?((LPBITMAPCOREHEADER)lpDIB)->bcBitCount;?
????switch?(wBitCount)?
????{?
????????case?1:?
?????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3444??2003-04-09?10:14??第二章特效顯示\Cdib.cpp
?????文件????????785??2003-04-11?08:18??第二章特效顯示\Cdib.h
?????文件???????3959??2004-09-20?17:17??第二章特效顯示\DSPLIT.CLW
?????文件????????579??1999-01-28?11:36??第二章特效顯示\DSPLIT.DSW
?????文件?????541696??2004-09-20?17:17??第二章特效顯示\DSPLIT.NCB
?????文件???????2957??2004-09-20?16:59??第二章特效顯示\DSPLIT.PLG
?????文件??????48420??2004-09-20?16:59??第二章特效顯示\DSplit.aps
?????文件???????5290??2003-04-22?16:13??第二章特效顯示\DSplit.dsp
?????文件??????14034??2004-09-20?16:59??第二章特效顯示\DSplit.rc
?????文件???????2008??2003-04-01?08:45??第二章特效顯示\DSplitDoc.cpp
?????文件???????1503??2003-04-11?08:16??第二章特效顯示\DSplitDoc.h
?????文件???????6439??2003-04-02?10:18??第二章特效顯示\DYNSPLITTERWND.CPP
?????文件???????1733??1998-03-10?17:19??第二章特效顯示\DYNSPLITTERWND.H
?????文件????????997??2003-04-22?16:03??第二章特效顯示\DlgArea.cpp
?????文件???????1233??2003-04-22?16:03??第二章特效顯示\DlgArea.h
?????文件???????4158??2003-04-01?08:51??第二章特效顯示\Dsplit.cpp
?????文件???????1366??2003-04-01?08:51??第二章特效顯示\Dsplit.h
?????文件??????84992??2004-09-20?17:17??第二章特效顯示\Dsplit.opt
?????文件???????3238??2003-04-02?16:45??第二章特效顯示\Dsplitview.cpp
?????文件???????1859??2003-04-01?08:27??第二章特效顯示\Dsplitview.h
?????文件??????29992??2004-09-13?19:35??第二章特效顯示\DynSplitView2.cpp
?????文件???????2217??2003-04-27?10:05??第二章特效顯示\DynSplitView2.h
?????文件???????3454??2003-04-25?14:22??第二章特效顯示\MainFrm.cpp
?????文件???????1609??2003-04-25?14:22??第二章特效顯示\MainFrm.h
?????文件???????4035??1998-02-03?10:42??第二章特效顯示\README.TXT
?????文件?????216054??2004-09-06?18:02??第二章特效顯示\RavMon.bmp
?????文件????????204??1998-02-03?10:42??第二章特效顯示\STDAFX.CPP
?????文件????????928??1998-02-03?10:42??第二章特效顯示\STDAFX.H
?????文件????????252??2003-04-27?08:40??第二章特效顯示\TeXiaoXianShiDib.cpp
?????文件????????187??2003-04-27?08:40??第二章特效顯示\TeXiaoXianShiDib.h
............此處省略29個文件信息
- 上一篇:2018年下半年軟件設計師真題和答案
- 下一篇:GSM物理層結構的詳細介紹
評論
共有 條評論