⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dibapi.h

📁 K均值聚类算法 C++实现的K均值聚类算法。
💻 H
字号:
/************************************************************************************************ 
 *  DIBAPI.H
 * 
 *  Header file for Device-Independent Bitmap (DIB) API.  Provides 
 *  function prototypes and constants for DIB functions 
 ************************************************************************************************/ 

#ifndef __DIBAPI_H_
#define __DIBAPI_H_
/////////////////////////////////////////////////////////////////////////////////////////////////

// Handle to a DIB  
#define HDIB	HANDLE

// Dib Header Marker - used in writing DIBs to files 
#define DIB_HEADER_MARKER	((WORD) ('M' << 8) | 'B') 

// DIB constants 
#define PALVERSION		0x300

/* DIB copy constants */ 
#define PW_WINDOW			1 
#define PW_CLIENT			2

//定义卷积核的行列数和卷积核的结构
#define KERNELCOLS      3
#define KERNELROWS      3
#define KERNELELEMENTS  (KERNELCOLS * KERNELROWS)

typedef struct
{
	int Element[KERNELELEMENTS];
	int Divisor;
}KERNEL;

//DIB Macros
#define WIDTHBYTES(bits)    (((bits) + 31) / 32 * 4) 
#define IS_WIN30_DIB(lpbi)  ((*(LPDWORD)(lpbi)) == sizeof(BITMAPINFOHEADER)) 
#define RECTWIDTH(lpRect)   ((lpRect)->right - (lpRect)->left) 
#define RECTHEIGHT(lpRect)  ((lpRect)->bottom - (lpRect)->top) 
#define WaitCursorBegin()	HCURSOR hcURSOR = SetCursor(LoadCursor(NULL, IDC_WAIT))
#define WaitCursorEnd()		SetCursor(hcURSOR)
#define ALIGN_DWORD(x) (((x)+3)/4 * 4)  // Double word alignment macro
/////////////////////////////////////////////////////////////////////////////////////////////////
//在dibapi.cpp中定义的函数
// function prototypes  
	// DIB initialization
HDIB   CreateDIB(DWORD, DWORD, WORD); 
HDIB   CreateDefaultDIB(DWORD dwWidth, DWORD dwHeight);
void   DestroyDIB(HDIB); 
HDIB   LoadDIB (LPTSTR); 
BOOL   SaveDIB (HDIB, LPTSTR); 
HDIB   ReadDIBFile(HANDLE);
HDIB   ReadDIBFile(CFile& file);
BOOL   SaveDIB (HDIB hDib, CFile& file);
BOOL   WriteDIBFile(HDIB hDib, HANDLE hFile); 
	// DIB attributes
DWORD  BytesPerLine(LPSTR lpDIB);
DWORD  DIBlockSize(LPSTR lpDIB);
DWORD  DIBHeight(LPSTR lpDIB); 
DWORD  DIBWidth(LPSTR lpDIB);  
WORD   DIBNumColors(LPSTR lpDIB);  
WORD   DIBBitCount(LPSTR lpDIB);  
LPSTR FindDIBBits(LPSTR lpDIB); 
WORD   PaletteSize(LPSTR lpDIB);  
	// DIB display
BOOL   PaintBitmap(HDC, LPRECT, HBITMAP, LPRECT, HPALETTE, DWORD);
BOOL   PaintDIB(HDC hDC,LPRECT lpDCRect,HDIB hDIB,LPRECT lpDIBRect,CPalette* pPal);
BOOL   DitherDisplayDIB(HDC, LPRECT, HDIB, LPRECT, DWORD);
	// DIB operations
HBITMAP DIBToDIBSection(LPSTR lpDIB);
HBITMAP DIBToDIBSection(HDIB hDIB);
HDIB DIBSectionToDIB(HBITMAP hBitmap);
HANDLE CopyHandle(HANDLE h);
HDIB ChangeDIBFormat (HDIB, WORD, DWORD);
HDIB ChangeBitmapFormat (HBITMAP hbm, WORD biBits, DWORD biCompression, HPALETTE hpal);
HBITMAP DIBToBitmap (HDIB hDIB, HPALETTE hPal);
HDIB ConvertDIBFormat(HDIB hDIB, UINT nbpp, HPALETTE hPalSrc);
HDIB ConvertDIBFormat(HDIB hDIB, UINT nWidth, UINT nHeight, UINT nbpp, BOOL bStretch, HPALETTE hPalSrc);
HDIB ConvertDIBFormat(LPSTR lpDIB, UINT nbpp, HPALETTE hPalSrc);
HDIB ConvertDIBFormat(LPSTR lpDIB, UINT nWidth, UINT nHeight, UINT nbpp, BOOL bStretch, HPALETTE hPalSrc);
BOOL CopyColorTable( LPBITMAPINFO lpTarget, LPBITMAPINFO lpSource, HPALETTE hPalSrc);
HDIB BitmapToDIB (HBITMAP, HPALETTE); 
HDIB BitmapToDIB (HBITMAP, HPALETTE, WORD);
	// DIB palette
HPALETTE CreateDIBPalette(LPSTR lpDIB);
HPALETTE CreateDIBPalette(HDIB hDIB);
BOOL     CreateDIBPalette(HDIB hDIB, CPalette* pPal);
HPALETTE CreateDitherPalette(); 
BOOL MapDIBColorsToPalette(HDIB hDIB, HPALETTE hPalette);
HPALETTE CreateIdentifyPalette(HPALETTE hPalSrc);
HPALETTE CopyPalette(HPALETTE hPalSrc);
HPALETTE GetSystemPalette(void);
BOOL DisplayPalette(HDC hDC, LPRECT lpRect, HPALETTE hPal);
	// DIB capture
HBITMAP CopyScreenToBitmap (LPRECT); 
HBITMAP CopyWindowToBitmap (HWND, WORD); 
HBITMAP CopyClientRectToBitmap(HWND hWnd, LPRECT lpRect);
HDIB CopyScreenToDIB (LPRECT); 
HDIB CopyWindowToDIB (HWND, WORD); 
HDIB CopyClientRectToDIB(HWND hWnd, LPRECT lpRect); 
///////////////////////////////////////////////////////////////////////////////////////////////
//在color.cpp中定义的函数
	// Color quantization
HPALETTE CreateOctreePalette(HDIB hDIB, UINT nMaxColors, UINT nColorBits);
HPALETTE CreateOctreePalette(LPSTR lpDIB, UINT nMaxColors, UINT nColorBits);
/////////////////////////////////////////////////////////////////////////////////////////////////
#endif	//__DIBAPI_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -