📄 dibapi.h
字号:
/**************************************************
* *
* *
* This is the image process function set *
* *
* written by Judy Feng in May 2001 *
* *
* *
***************************************************/
#if !defined(DibAPIh)
#define DibAPIh 1
#define HDIB HANDLE
#define PALVERSION 0x300
#define WIDTHBYTES(bits) (((bits)+31)/32*4)
#define DIB_HEADER_MARKER (WORD)('MB')
#define RECTWIDTH(lpRect) (lpRect->right -lpRect->left)
#define RECTHEIGHT(lpRect) (lpRect->bottom -lpRect->top)
#define PW_WINDOW WORD(1)
#define PW_CLIENT WORD(2)
typedef struct imgTag
{
DWORD dwWidth;
DWORD dwHeight;
WORD wBitCounts;
WORD wNumColors;
BYTE map[256][3];
CByteArray imgRed;
CByteArray imgGreen;
CByteArray imgBlue;
}IMGMATRIX;
//effect constants
#define EFFECT_SCANDOWN 1
#define EFFECT_SCANUP 2
#define EFFECT_SCANRIGHT 3
#define EFFECT_SCANLEFT 4
#define EFFECT_VSPLITSCAN 5
#define EFFECT_HSPLITSCAN 6
#define EFFECT_MOVEDOWN 7
#define EFFECT_MOVEUP 8
#define EFFECT_MOVERIGHT 9
#define EFFECT_MOVELEFT 10
#define EFFECT_VSPLITMOVE 11
#define EFFECT_HSPLITMOVE 12
#define EFFECT_VCROSSMOVE 13
#define EFFECT_HCROSSMOVE 14
#define EFFECT_VRASTER 15
#define EFFECT_HRASTER 16
#define EFFECT_VBLIND 17
#define EFFECT_HBLIND 18
#define EFFECT_MOSIAC 19
#define EFFECT_FADE 20
#define UPVALUE(x,n) ((x)/((n)?(n):1)+((x)%((n)?(n):1)?1:0))
#define BOUND(x,mn,mx) ((x)<(mn) ?(mn):((x)>(mx)?(mx):(x)))
//define the position
#define LEFT_UP 1
#define CENTER_UP 2
#define RIGHT_UP 3
#define LEFT_CENTER 4
#define CENTER_CENTER 5
#define CENTER_RIGHT 6
#define LEFT_DOWN 7
#define CENTER_DOWN 8
#define RIGHT_DOWN 9
#include "math.h"
void WaitCursorBegin();
void WaitCursorEnd();
DWORD timeGetTime(void);
void Delay(DWORD dwDelayTime);
//Initial functions
HDIB CreateDIB(DWORD dwWidth,DWORD dwHeight,WORD wBitCount);
HDIB CreateDefaultDIB(DWORD dwWidth,DWORD dwHeight);
void DestroyDIB(HDIB hDIB);
int PalEntriesOnDevice(HDC hDC);
HDIB LoadDIB(LPCTSTR lpFileName);
HDIB ReadDIBFile(HANDLE hFile);
BOOL SaveDIB(HDIB hDib, LPCTSTR lpFileName);
//attribute functions
DWORD BytesPerLine(LPBYTE lpDIB);
DWORD BytesPerLine(HDIB hDIB);
DWORD DIBLockSize(LPBYTE lpDIB);
DWORD DIBLockSize(HDIB hDIB);
DWORD DIBHeight(LPBYTE lpDIB);
DWORD DIBHeight(HDIB hDIB);
DWORD DIBWidth(LPBYTE lpDIB);
DWORD DIBWidth(HDIB hDIB);
WORD DIBNumColors(LPBYTE lpDIB);
WORD DIBNumColors(HDIB hDIB);
WORD DIBBitCount(LPBYTE lpDIB);
WORD DIBBitCount(HDIB hDIB);
LPBYTE FindDIBBits(LPBYTE lpDIB);
WORD PaletteSize(LPBYTE lpDIB);
WORD PaletteSize(HDIB hDIB);
//display functions
BOOL PaintDDB(HDC hDC,LPRECT lpDCRect,HBITMAP hDDB,
LPRECT lpDDBRect,HPALETTE hPal,DWORD dwRop);
BOOL PaintDIB(HDC hDC, LPRECT lpDCRect, HANDLE hDIB,
LPRECT lpDIBRect, HPALETTE hPal, DWORD dwRop);
//Palette functions
HPALETTE CopyPalette(HPALETTE hPalSrc);
BOOL DisplayPalette(HDC hDC, LPRECT lpRect, HPALETTE hPal);
HPALETTE GetSystemPalette(HDC hDC);
HPALETTE CreateDIBPalette(LPBYTE lpbi);
HPALETTE CreateDIBPalette(HDIB hDIB);
BOOL MapDIBColorsToPalette(HDIB hDIB,HPALETTE hPalette);
//operation functions
HBITMAP DIBToDIBSection(LPBYTE lpDIB);
HBITMAP DIBToDIBSection(HDIB hDIB);
HDIB DIBSectionToDIB(HBITMAP hBitmap);
HDIB ConvertDIBFormat(LPBYTE lpDIB,UINT nWidth,UINT nHeight,
UINT nBpp,BOOL bStretch,HPALETTE hPalSrc);
HDIB ConvertDIBFormat(HDIB hDIB,UINT nWidth,UINT nHeight,
UINT nBpp,BOOL bStretch,HPALETTE hPalSrc);
HDIB ConvertDIBFormat(LPBYTE lpDIB,UINT nBpp,HPALETTE hPalSrc);
HDIB ConvertDIBFormat(HDIB hDIB,UINT nBpp,HPALETTE hPalSrc);
HDIB BitmapToDIB(HBITMAP hBitmap,HPALETTE hPal);
HDIB BitmapToDIB(HBITMAP hBitmap,HPALETTE hPal,WORD wBitCount);
HDIB ChangeBitmapFormat(HBITMAP hBm,WORD biBits,
DWORD biCompression,HPALETTE hPal);
HBITMAP DIBToBitmap(HDIB hDIB,HPALETTE hPal);
HDIB ChangeDIBFormat(HDIB hDIB,WORD wBitCount,DWORD dwCompression);
BOOL CopyColorTable(LPBITMAPINFO lpTarget,LPBITMAPINFO lpSource,
HPALETTE hPalSrc);
//capture functions
HBITMAP CopyScreenToBitmap(LPRECT lpRect);
HBITMAP CopyWindowToBitmap(HWND hWnd,WORD fPrintArea);
HBITMAP CopyClientRectToBitmap(HWND hWnd,LPRECT lpRect);
HDIB CopyScreenToDIB(LPRECT lpRect);
HDIB CopyWindowToDIB(HWND hWnd,WORD fPrintArea);
HDIB CopyClientRectToDIB(HWND hWnd,LPRECT lpRect);
//load bitmap from resource
BOOL DisplayDIB(HDC hDC, LPCTSTR lpFileName);
BOOL DisplayDDB(HDC hDC,LPCTSTR lpszBitmap );
LPBYTE LoadDIBFromResource(LPCTSTR lpszBitmap);
//display techniques
BOOL Fade(int nDetaR,int nDetaG,int nDetaB,
BYTE rm,BYTE gm,BYTE bm,
BYTE *r,BYTE *g,BYTE *b);
HANDLE CopyHandle(HANDLE h);
//transform
HDIB CutDIB(HDIB hDIB,LPRECT lpRect);
HDIB CropDIB(HDIB hDIB,LPRECT lpRect);
HDIB MergeDIB(HDIB hDIB1,HDIB hDIB2,POINT ptToLeft);
HDIB ChangeDIBSize(HDIB hDIB,int nWidth,int nHeight);
HDIB ChangeDIBCanvasSize(HDIB hDIB,int nWidth,int nHeight,
int nPosition);
HDIB RotateDIB(HDIB hDIB);
HDIB FlipHorzDIB(HDIB hDIB);
HDIB FlipVertDIB(HDIB hDIB);
//Matrix operation
IMGMATRIX *ChangDIBToMatrix(HDIB hDIB);
BOOL ChangeMatrixToDIB(HDIB hDIB,IMGMATRIX * img);
IMGMATRIX *CopyMatrix(IMGMATRIX *img);
IMGMATRIX *CreateDefaultMatrix(DWORD dwWidth,DWORD dwHeight,
WORD wBitCounts,WORD wNumColors);
//Transform based on Matrix
IMGMATRIX* LayoutMatrix(IMGMATRIX *img, int nWL, int nHL,
int nWR,int nHR);
IMGMATRIX* RotateMatrix(IMGMATRIX *img, double telta);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -