資源簡介
簡潔明了的實現了圖像平移功能,附帶實現了圖片保存等功能
代碼片段和文件信息
//??dibapi.cpp
//
//??Source?file?for?Device-Independent?Bitmap?(DIB)?API.??Provides
//??the?following?functions:
//
//??PaintDIB()??????????-?Painting?routine?for?a?DIB
//??CreateDIBPalette()??-?Creates?a?palette?from?a?DIB
//??FindDIBBits()???????-?Returns?a?pointer?to?the?DIB?bits
//??DIBWidth()??????????-?Gets?the?width?of?the?DIB
//??DIBHeight()?????????-?Gets?the?height?of?the?DIB
//??PaletteSize()???????-?Gets?the?size?required?to?store?the?DIB‘s?palette
//??DIBNumColors()??????-?Calculates?the?number?of?colors
//????????????????????????in?the?DIB‘s?color?table
//??CopyHandle()????????-?Makes?a?copy?of?the?given?global?memory?block
//
//?This?is?a?part?of?the?Microsoft?Foundation?Classes?C++?library.
//?Copyright?(C)?1992-1997?Microsoft?Corporation
//?All?rights?reserved.
//
//?This?source?code?is?only?intended?as?a?supplement?to?the
//?Microsoft?Foundation?Classes?Reference?and?related
//?electronic?documentation?provided?with?the?library.
//?See?these?sources?for?detailed?information?regarding?the
//?Microsoft?Foundation?Classes?product.
#include?“stdafx.h“
#include?“dibapi.h“
#include?
#include?
#include?
#define?DIB_HEADER_MARKER???((WORD)?(‘M‘?<8)?|?‘B‘)
#ifdef?_MAC
#define?SWAPWORD(x)?MAKEWORD(HIBYTE(x)?LOBYTE(x))
#define?SWAPLONG(x)?MAKELONG(SWAPWORD(HIWORD(x))?SWAPWORD(LOWORD(x)))
void?ByteSwapHeader(BITMAPFILEHEADER*?bmiHeader);
void?ByteSwapInfo(LPSTR?lpHeader?BOOL?fWin30Header);
#endif
/*************************************************************************
?*
?*?PaintDIB()
?*
?*?Parameters:
?*
?*?HDC?hDC??????????-?DC?to?do?output?to
?*
?*?LPRECT?lpDCRect??-?rectangle?on?DC?to?do?output?to
?*
?*?HDIB?hDIB????????-?handle?to?global?memory?with?a?DIB?spec
?*????????????????????in?it?followed?by?the?DIB?bits
?*
?*?LPRECT?lpDIBRect?-?rectangle?of?DIB?to?output?into?lpDCRect
?*
?*?CPalette*?pPal???-?pointer?to?CPalette?containing?DIB‘s?palette
?*
?*?Return?Value:
?*
?*?BOOL?????????????-?TRUE?if?DIB?was?drawn?FALSE?otherwise
?*
?*?Description:
?*???Painting?routine?for?a?DIB.??Calls?StretchDIBits()?or
?*???SetDIBitsToDevice()?to?paint?the?DIB.??The?DIB?is
?*???output?to?the?specified?DC?at?the?coordinates?given
?*???in?lpDCRect.??The?area?of?the?DIB?to?be?output?is
?*???given?by?lpDIBRect.
?*
?************************************************************************/
BOOL?WINAPI?PaintDIB(HDC?????hDC
LPRECT??lpDCRect
HDIB????hDIB
LPRECT??lpDIBRect
CPalette*?pPal)
{
LPSTR????lpDIBHdr;????????????//?Pointer?to?BITMAPINFOHEADER
LPSTR????lpDIBBits;???????????//?Pointer?to?DIB?bits
BOOL?????bSuccess=FALSE;??????//?Success/fail?flag
HPALETTE?hPal=NULL;???????????//?Our?DIB‘s?palette
HPALETTE?hOldPal=NULL;????????//?Previous?palette
/*?Check?for?valid?DIB?handle?*/
if?(hDIB?==?NULL)
return?FALSE;
/*?Lock?down?the?DIB?and?get?a?pointer?to?the?beginning?of?the?bit
?*??buffer
?*/
l
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????11322??2015-04-21?14:23??源代碼\Debug\BuildLog.htm
?????文件??????24938??2015-04-21?14:23??源代碼\Debug\dibapi.obj
?????文件??????????0??2015-04-21?14:23??源代碼\Debug\dibapi.sbr
?????文件??????34588??2015-04-12?16:58??源代碼\Debug\MainFrm.obj
?????文件??????????0??2015-04-12?16:58??源代碼\Debug\MainFrm.sbr
?????文件?????????65??2015-04-21?14:23??源代碼\Debug\mt.dep
?????文件???????8139??2015-04-12?16:58??源代碼\Debug\mydib.obj
?????文件??????????0??2015-04-12?16:58??源代碼\Debug\mydib.sbr
?????文件???12381184??2015-04-21?14:23??源代碼\Debug\MyDIP.bsc
?????文件?????126976??2015-04-21?14:23??源代碼\Debug\MyDIP.exe
?????文件????????920??2015-04-21?14:23??源代碼\Debug\MyDIP.exe.em
?????文件????????984??2015-04-21?14:23??源代碼\Debug\MyDIP.exe.em
?????文件????????861??2015-04-21?14:23??源代碼\Debug\MyDIP.exe.intermediate.manifest
?????文件????1472652??2015-04-21?14:23??源代碼\Debug\MyDIP.ilk
?????文件??????35678??2015-04-12?16:58??源代碼\Debug\MyDIP.obj
?????文件???28573696??2015-04-12?16:58??源代碼\Debug\MyDIP.pch
?????文件????3804160??2015-04-21?14:23??源代碼\Debug\MyDIP.pdb
?????文件???????9372??2015-04-21?14:23??源代碼\Debug\MyDIP.res
?????文件??????????0??2015-04-12?16:58??源代碼\Debug\MyDIP.sbr
?????文件??????34898??2015-04-12?16:58??源代碼\Debug\MyDIPDoc.obj
?????文件??????????0??2015-04-12?16:58??源代碼\Debug\MyDIPDoc.sbr
?????文件??????43772??2015-04-12?16:58??源代碼\Debug\MyDIPView.obj
?????文件??????????0??2015-04-12?16:58??源代碼\Debug\MyDIPView.sbr
?????文件?????466363??2015-04-12?16:58??源代碼\Debug\StdAfx.obj
?????文件????3359443??2015-04-12?16:58??源代碼\Debug\StdAfx.sbr
?????文件?????945152??2015-04-21?14:23??源代碼\Debug\vc90.idb
?????文件????2002944??2015-04-21?14:23??源代碼\Debug\vc90.pdb
?????文件??????23774??2015-04-21?14:23??源代碼\dibapi.cpp
?????文件???????1876??2000-02-03?07:29??源代碼\dibapi.h
?????文件???????2506??2004-05-20?14:25??源代碼\MainFrm.cpp
............此處省略35個文件信息
評論
共有 條評論