📄 dibapi.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 + -