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

📄 dibapi.h

📁 vc++实现简单图像编辑器。。。。。。。。。
💻 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 + -