資源簡介
提供了五個MFC數字圖像處理范例,均可運行。

代碼片段和文件信息
//?MyDib.cpp:?implementation?of?the?CDib?class.
//
//////////////////////////////////////////////////////////////////////
#include?“stdafx.h“
#include?“Dib.h“
#include?
#ifdef?_DEBUG
#undef?THIS_FILE
static?char?THIS_FILE[]=__FILE__;
#define?new?DEBUG_NEW
#endif
/*
?*?Dib文件頭標志(字符串“BM“)
?*/
#define?DIB_MARKER???((WORD)?(‘M‘?<8)?|?‘B‘)
//////////////////////////////////////////////////////////////////////
//?Construction/Destruction
//////////////////////////////////////////////////////////////////////
CDib::CDib()
{
InitMembers();
}
CDib::~CDib()
{
ClearMemory();
}
/*************************************************************************
?*?函數名稱:DrawDib()
?*?參數說明:
?*???HDC?hDC,輸出設備DC
?*???LPRECT?lpDCRect,繪制矩形區域
?*???HGLOBAL?hDIB?,DIB對象的句柄
?*???LPRECT?lpDIBRect?,DIB的輸出區域
?*???CPalette*?pPal,調色板的指針
?*?函數類型:BOOL
?*?函數功能:該函數主要用來繪制DIB對象???
?************************************************************************/
BOOL?CDib::DrawDib(HDC?????hDC
LPRECT??lpDCRect
HGLOBAL????hDIB
LPRECT??lpDIBRect
CPalette*?pPal)
{
BOOL?????bSuccess=FALSE;??????//?重畫成功標志
HPALETTE?hOldPal=NULL;????????//?以前的調色板
if?(hDIB?==?NULL)//?判斷是否是有效的DIB對象
{
return?FALSE;//?不是,則返回
}
lpdib??=?(LPSTR)?::GlobalLock((HGLOBAL)?hDIB);//?鎖定DIB
lpDIBBits?=?GetBits(lpdib);//?找到DIB圖象像素起始位置
if?(pPal?!=?NULL)//?獲取DIB調色板,并選取到設備環境中它
{
HPALETTE?hPal?=?(HPALETTE)?pPal->m_hobject;
hOldPal?=?::SelectPalette(hDC?hPal?TRUE);
}
::SetStretchBltMode(hDC?COLORONCOLOR);//?設置顯示模式
bSuccess?=?::StretchDIBits(hDC //?設備環境句柄
???lpDCRect->left?????????????????//目標X坐標
???lpDCRect->top??????????????????//?目標Y坐標
???GetRectWidth(lpDCRect)????????????//?目標寬度
???GetRectHeight(lpDCRect)???????????//?目標高度
???lpDIBRect->left????????????????//?源X坐標
???lpDIBRect->top?????????????????//?源Y坐標
???GetRectWidth(lpDIBRect)???????????//?源寬度
???GetRectHeight(lpDIBRect)??????????//?源高度
???lpDIBBits??????????????????????//?指向dib像素的指針
???(LPBITMAPINFO)lpdib?????????//?指向位圖信息結構的指針
???DIB_RGB_COLORS?????????????????//?使用的顏色數目
???SRCCOPY);???????????????????????//?光柵操作類型
::GlobalUnlock(hDIB); //?解除鎖定
if?(hOldPal?!=?NULL)//?恢復系統調色板
{
::SelectPalette(hDC?hOldPal?TRUE);
}
return?bSuccess;
}
/*************************************************************************
?*?函數名稱:ConstructPalette(HGLOBAL?hDIB?CPalette*?pPal)
?*?函數參數:
?*???HGLOBAL?hDIB,DIB對象的句柄
?*???CPalette*?pPal,調色板的指針
?*?函數類型:BOOL
?*?函數說明:該函數按照DIB創建一個邏輯調色板??
?************************************************************************/
BOOL?CDib::ConstructPalette(HGLOBAL?hDIB?CPalette*?pPal)
{
HANDLE?hLogPal;//?邏輯調色板的句柄
int?iLoop;//?循環變量
BOOL?bSuccess?=?FALSE;//?創建結果
if?(hDIB?==?NULL)//判斷是否是有效的DIB對象
{
return?FALSE;//?返回FALSE
}
lpdib?=?(LPSTR)?::GlobalLock((HGLOBAL)?hDIB);//?鎖定DI
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????13811??2008-06-12?17:06??第16章?數字圖像處理\實例380——創建DIB操作的類——CDib\Dib.cpp
?????文件???????2252??2008-06-12?17:06??第16章?數字圖像處理\實例380——創建DIB操作的類——CDib\Dib.h
?????文件???????1538??2008-06-12?17:06??第16章?數字圖像處理\實例381——使用CDib類實現顯示與保存BMP文件\ShowSaveBMP\ChildFrm.cpp
?????文件???????1397??2008-06-12?17:06??第16章?數字圖像處理\實例381——使用CDib類實現顯示與保存BMP文件\ShowSaveBMP\ChildFrm.h
?????文件?????135262??2008-06-12?19:55??第16章?數字圖像處理\實例381——使用CDib類實現顯示與保存BMP文件\ShowSaveBMP\Debug\ShowSaveBMP.exe
?????文件??????13811??2008-06-12?17:06??第16章?數字圖像處理\實例381——使用CDib類實現顯示與保存BMP文件\ShowSaveBMP\Dib.cpp
?????文件???????2252??2008-06-12?17:06??第16章?數字圖像處理\實例381——使用CDib類實現顯示與保存BMP文件\ShowSaveBMP\Dib.h
?????文件???????2528??2008-06-12?17:06??第16章?數字圖像處理\實例381——使用CDib類實現顯示與保存BMP文件\ShowSaveBMP\MainFrm.cpp
?????文件???????1542??2008-06-12?17:06??第16章?數字圖像處理\實例381——使用CDib類實現顯示與保存BMP文件\ShowSaveBMP\MainFrm.h
?????文件???????4901??2008-06-12?17:06??第16章?數字圖像處理\實例381——使用CDib類實現顯示與保存BMP文件\ShowSaveBMP\ReadMe.txt
?????文件???????1078??2008-06-12?17:06??第16章?數字圖像處理\實例381——使用CDib類實現顯示與保存BMP文件\ShowSaveBMP\res\ShowSaveBMP.ico
?????文件????????403??2008-06-12?17:06??第16章?數字圖像處理\實例381——使用CDib類實現顯示與保存BMP文件\ShowSaveBMP\res\ShowSaveBMP.rc2
?????文件???????1078??2008-06-12?17:06??第16章?數字圖像處理\實例381——使用CDib類實現顯示與保存BMP文件\ShowSaveBMP\res\ShowSaveBMPDOC.ico
?????文件???????1078??2007-02-25?08:44??第16章?數字圖像處理\實例381——使用CDib類實現顯示與保存BMP文件\ShowSaveBMP\res\Toolbar.bmp
?????文件????????499??2008-06-12?17:06??第16章?數字圖像處理\實例381——使用CDib類實現顯示與保存BMP文件\ShowSaveBMP\Resource.h
?????文件??????30019??2008-06-12?17:06??第16章?數字圖像處理\實例381——使用CDib類實現顯示與保存BMP文件\ShowSaveBMP\ShowSaveBMP.aps
?????文件???????2900??2008-06-12?17:06??第16章?數字圖像處理\實例381——使用CDib類實現顯示與保存BMP文件\ShowSaveBMP\ShowSaveBMP.clw
?????文件???????4568??2008-06-12?17:06??第16章?數字圖像處理\實例381——使用CDib類實現顯示與保存BMP文件\ShowSaveBMP\ShowSaveBMP.cpp
?????文件???????4903??2008-06-12?19:59??第16章?數字圖像處理\實例381——使用CDib類實現顯示與保存BMP文件\ShowSaveBMP\ShowSaveBMP.dsp
?????文件????????547??2008-06-12?17:06??第16章?數字圖像處理\實例381——使用CDib類實現顯示與保存BMP文件\ShowSaveBMP\ShowSaveBMP.dsw
?????文件???????1411??2008-06-12?17:06??第16章?數字圖像處理\實例381——使用CDib類實現顯示與保存BMP文件\ShowSaveBMP\ShowSaveBMP.h
?????文件??????58368??2008-06-12?19:59??第16章?數字圖像處理\實例381——使用CDib類實現顯示與保存BMP文件\ShowSaveBMP\ShowSaveBMP.ncb
?????文件??????53760??2008-06-12?19:59??第16章?數字圖像處理\實例381——使用CDib類實現顯示與保存BMP文件\ShowSaveBMP\ShowSaveBMP.opt
?????文件????????256??2008-06-12?19:59??第16章?數字圖像處理\實例381——使用CDib類實現顯示與保存BMP文件\ShowSaveBMP\ShowSaveBMP.plg
?????文件??????12031??2008-06-12?17:06??第16章?數字圖像處理\實例381——使用CDib類實現顯示與保存BMP文件\ShowSaveBMP\ShowSaveBMP.rc
?????文件???????4643??2008-06-12?19:55??第16章?數字圖像處理\實例381——使用CDib類實現顯示與保存BMP文件\ShowSaveBMP\ShowSaveBMPDOC.cpp
?????文件???????2130??2008-06-12?19:40??第16章?數字圖像處理\實例381——使用CDib類實現顯示與保存BMP文件\ShowSaveBMP\ShowSaveBMPDOC.h
?????文件???????3387??2008-06-12?19:55??第16章?數字圖像處理\實例381——使用CDib類實現顯示與保存BMP文件\ShowSaveBMP\ShowSaveBMPVIEW.cpp
?????文件???????1971??2008-06-12?17:06??第16章?數字圖像處理\實例381——使用CDib類實現顯示與保存BMP文件\ShowSaveBMP\ShowSaveBMPVIEW.h
?????文件????????213??2008-06-12?17:06??第16章?數字圖像處理\實例381——使用CDib類實現顯示與保存BMP文件\ShowSaveBMP\StdAfx.cpp
............此處省略118個文件信息
- 上一篇:MFC_學生信息管理系統
- 下一篇:黃金礦工C語言
評論
共有 條評論