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

📄 dibapi.h

📁 面向软件工程的Visual C++网络程序开发
💻 H
字号:
//-----DibApi.h------

#ifndef DIBAPI_H
#define DIBAPI_H

#include "DibApiHead.h"

#ifndef MYDIBLIBAPI
#define MYDIBLIBAPI _declspec(dllimport)
#endif

// 对DIB 图象操作
	//初始化函数
MYDIBLIBAPI HDIB		CreateDIB(DWORD dwWidth, DWORD dwHeight, WORD wBitCount);
MYDIBLIBAPI HDIB		CreateDefaultDIB(DWORD dwWidth, DWORD dwHeight);

MYDIBLIBAPI void		DestroyDIB(HDIB hDib);

	//Palette functions
MYDIBLIBAPI HPALETTE	CopyPalette(HPALETTE hPalSrc);
MYDIBLIBAPI HPALETTE	CreateIdentifyPalette(HPALETTE hPalSrc);
MYDIBLIBAPI BOOL		DisplayPalette(HDC hDC, LPRECT lpRect, HPALETTE hPal);
MYDIBLIBAPI HPALETTE	GetSystemPalette(void);
MYDIBLIBAPI int			PalEntriesOnDevice(HDC hDC);
MYDIBLIBAPI HANDLE		CreateDIBLogPalette(LPBYTE);
MYDIBLIBAPI HANDLE		CreateDIBLogPalette(HDIB);
MYDIBLIBAPI HPALETTE	CreateDIBPalette(LPBYTE);
MYDIBLIBAPI HPALETTE	CreateDIBPalette(HDIB);

MYDIBLIBAPI BOOL		GetDIBPalette(HDIB hDib, int i, RGBQUAD& rgb);
MYDIBLIBAPI BOOL		GetDIBPalette(HDIB hDib, int i, RGBQUAD* rgb);
MYDIBLIBAPI BOOL		SetDIBPalette(HDIB hDib, int i, RGBQUAD& rgb);
MYDIBLIBAPI BOOL		SetDIBPalette(HDIB hDib, int i, RGBQUAD* rgb);
MYDIBLIBAPI BOOL		SetDIBPalette(HDIB hDib, LPLOGPALETTE lpPal);
MYDIBLIBAPI BOOL		SetDIBPalette(HDIB hDib, HANDLE hLogPal);

MYDIBLIBAPI HPALETTE	CreateOctreePalette(HDIB hDIB, 
									UINT nMaxColors,
									UINT nColorBits);
MYDIBLIBAPI HPALETTE	BuildOctreePalette(HANDLE hImage,
								   UINT nMaxColors,
								   UINT nColorBits);

	//attribute functions
MYDIBLIBAPI DWORD		BytesPerLine(LPBYTE);
MYDIBLIBAPI DWORD		BytesPerLine(HDIB hDIB);
MYDIBLIBAPI DWORD		DIBlockSize(HDIB hDIB);
MYDIBLIBAPI DWORD		DIBlockSize(LPBYTE lpDIB);
MYDIBLIBAPI DWORD		DIBHeight(LPBYTE lpDIB);
MYDIBLIBAPI DWORD		DIBHeight(HDIB hDIB);
MYDIBLIBAPI DWORD		DIBWidth(LPBYTE lpDIB);
MYDIBLIBAPI DWORD		DIBWidth(HDIB hDIB);
MYDIBLIBAPI WORD		DIBNumColors(LPBYTE lpDIB);
MYDIBLIBAPI WORD		DIBNumColors(HDIB hDIB);
MYDIBLIBAPI WORD		DIBBitCount(LPBYTE lpDIB);
MYDIBLIBAPI WORD		DIBBitCount(HDIB hDIB);
MYDIBLIBAPI LPBYTE		FindDIBBits(LPBYTE lpDIB);
MYDIBLIBAPI WORD		PaletteSize(LPBYTE lpDIB);
MYDIBLIBAPI WORD		PaletteSize(HDIB hDIB);

	//Display functions
MYDIBLIBAPI BOOL		PaintBitmap(HDC hDC, LPRECT lpDCRect,
							HBITMAP hDDB, LPRECT lpDDBRect,
							HPALETTE hPal, DWORD dwRop);	//for DDB

MYDIBLIBAPI BOOL		PaintDIB(HDC hDC, LPRECT lpDCRect, HDIB hDIB,
							LPRECT lpDIBRect, HPALETTE hPal, DWORD dwRop);
												//for DIB

	//Operation functions
MYDIBLIBAPI HBITMAP		DIBToDIBSection(LPBYTE lpDIB);
MYDIBLIBAPI HBITMAP		DIBToDIBSection(HDIB hDIB);
MYDIBLIBAPI HDIB		DIBSectionToDIB(HBITMAP hBitmap);
MYDIBLIBAPI HDIB		ConvertDIBFormat(LPBYTE lpDIB, UINT nWidth,
							UINT nHeight, UINT nbpp, BOOL bStretch,
							HPALETTE hPalSrc);
MYDIBLIBAPI HDIB		ConvertDIBFormat(HDIB hDIB, UINT nWidth, UINT nHeight, 
							UINT nbpp, BOOL bStretch, HPALETTE hPalSrc);
MYDIBLIBAPI HDIB		ConvertDIBFormat(LPBYTE lpDIB, UINT nbpp, HPALETTE hPalSrc);
MYDIBLIBAPI HDIB		ConvertDIBFormat(HDIB hDIB, UINT nbpp, HPALETTE hPalSrc);
MYDIBLIBAPI HDIB		BitmapToDIB(HBITMAP, HPALETTE);
MYDIBLIBAPI HDIB		BitmapToDIB(HBITMAP, HPALETTE, WORD);
MYDIBLIBAPI HDIB		ChangeBitmapFormat(HBITMAP, WORD, DWORD , HPALETTE);
MYDIBLIBAPI HBITMAP		DIBToBitmap(HDIB hDIB, HPALETTE hPal);
MYDIBLIBAPI HDIB		ChangeDIBFormat(HDIB, WORD, DWORD);
MYDIBLIBAPI BOOL		CopyColorTable(LPBITMAPINFO lpTarget, LPBITMAPINFO lpSource,
							HPALETTE hPalSrc);

	//  Palette Function
MYDIBLIBAPI BOOL		MapDIBColorsToPalette(HDIB, HPALETTE);

	//  Capture function
MYDIBLIBAPI HBITMAP		CopyScreenToBitmap(LPRECT);
MYDIBLIBAPI HBITMAP		CopyWindowToBitmap(HWND, WORD);
MYDIBLIBAPI HBITMAP		CopyClientRectToBitmap(HWND, LPRECT);
MYDIBLIBAPI HDIB		CopyScreenToDIB(LPRECT);
MYDIBLIBAPI HDIB		CopyWindowToDIB(HWND, WORD);
MYDIBLIBAPI HDIB		CopyClientRectToDIB(HWND, LPRECT);

	//  Bitmap Transform : cut , crop and merge
MYDIBLIBAPI HDIB		CutDIB(HDIB hDib, LPRECT lpRect);
MYDIBLIBAPI HDIB		CopyDIB(HDIB hDib, LPRECT lpRect);

MYDIBLIBAPI HDIB		CropDIB(HDIB hDib, LPRECT lpRect);
MYDIBLIBAPI HDIB		MergeDIB(HDIB hDib1, HDIB hDib2, POINT ptTopLeft);
MYDIBLIBAPI HBITMAP		CropBitmap(HBITMAP hBitmap, LPRECT lpRect);

MYDIBLIBAPI HANDLE		CopyHandle(HANDLE h);

	//Bitmap Transform : zoom in and out , change canvas size
MYDIBLIBAPI HDIB		ChangeDIBSize(HDIB hDib, int nWidth, int nHeight);
MYDIBLIBAPI HDIB		ChangeDIBCanvasSize(HDIB hDib, int nWidth, int nHeight, 
								int nPosition);

	//Bitmap Transform : Rotate
MYDIBLIBAPI HDIB		RotateDIB(HDIB hDib);
	//Bitmap Transform : FlipHorz
MYDIBLIBAPI HDIB		FlipHorzDIB(HDIB hDib);
MYDIBLIBAPI HDIB		FlipVertDIB(HDIB hDib);

	//Bitmap disposition : Filter , Analysis and reconstruction

	//Color transform
MYDIBLIBAPI HPALETTE	ConvertToGrayScale(HDIB hDib, int nMethod,
				double fRedWeight, double fGreenWeight, 
				double fBlueWeight);

MYDIBLIBAPI HDIB		ColorQuantizeDIB(HDIB hDib, UINT nColorBits, 
								 UINT nMaxColors);
MYDIBLIBAPI HPALETTE	CreateOctreePalette(HDIB hDib, UINT nMaxColors, 
									UINT nColorBits);
MYDIBLIBAPI HPALETTE	CreateOctreePalette(LPBYTE lpDIB, UINT nMaxColor, 
									UINT nColorBits);
MYDIBLIBAPI HPALETTE	BuildOctreePalette(HANDLE hImage, UINT nMaxColors, 
								   UINT nColorBits);
MYDIBLIBAPI void		AddColor(NODE**, BYTE, BYTE, BYTE, UINT, UINT, UINT*, NODE**);
MYDIBLIBAPI NODE*		CreateNode(UINT, UINT, UINT*, NODE**);
MYDIBLIBAPI void		ReduceTree(UINT, UINT*, NODE**);
MYDIBLIBAPI void		DeleteTree(NODE**);
MYDIBLIBAPI void		GetPaletteColors(NODE*, PALETTEENTRY*, UINT*);
MYDIBLIBAPI int			GetRightShiftCount(DWORD);
MYDIBLIBAPI int			GetLeftShiftCount(DWORD);

	//////
MYDIBLIBAPI void		HSItoRGB(double h, double s, double i, 
							BYTE* r, BYTE* g, BYTE* b);
MYDIBLIBAPI void		RGBtoHSI(BYTE r, BYTE g, BYTE b, 
							double* h, double* s, double* i);
MYDIBLIBAPI double		Value(double n1, double n2, double hue);
MYDIBLIBAPI void		HLStoRGB(double h, double l, double s, 
							BYTE* r, BYTE* g, BYTE* b);
MYDIBLIBAPI void		RGBtoHLS(BYTE r, BYTE g, BYTE b, 
							double* h, double* l, double* s);
MYDIBLIBAPI void		CMYKtoRGB(BYTE c, BYTE m, BYTE y, BYTE k, 
							BYTE* r, BYTE* g, BYTE* b);
MYDIBLIBAPI void		RGBtoCMYK(BYTE r, BYTE g, BYTE b, 
							BYTE* c, BYTE* m, BYTE* y, BYTE* k);

MYDIBLIBAPI BOOL		AdjustDIBColor(HDIB hDib, int nColorModel,
								int v1, int v2, int v3);
	//BIGHTNESS
MYDIBLIBAPI void		ChangeBrightness(int nDelta, BYTE* r, BYTE* g, BYTE* b);
MYDIBLIBAPI BOOL		AdjustDIBBrightness(HDIB hDib, int v);
	//Contrast
MYDIBLIBAPI void		IncreaseContrast(BYTE* pByte, const int Low, const int High,
								 const float Grad);
MYDIBLIBAPI void		DecreaseContrast(BYTE* pByte, const int Level, 
								 const float Grad);

MYDIBLIBAPI void		ChangeContrast(int nDelta, BYTE* r, BYTE* g, BYTE* b);
MYDIBLIBAPI BOOL		AdjustDIBContrast(HDIB hDib, int v);


	// Dither
MYDIBLIBAPI void		BayerDither(BYTE* r, BYTE* g, BYTE* b, 
							int nx, int ny, int nScale);
MYDIBLIBAPI	BOOL		DitherDisplayDIB(HDC hDC, LPRECT lpDCRect, HDIB hDib,
								 LPRECT lpDIBRect, DWORD dwRop);

MYDIBLIBAPI void		DitherLine(WORD Width, LPBYTE pLine1, LPBYTE pLine2);
MYDIBLIBAPI HGLOBAL		DitherImage(LPBYTE lpImageData, WORD Width, WORD Height);
MYDIBLIBAPI HDIB		CreateDither8BppDIB(HDIB hDib);
MYDIBLIBAPI HPALETTE	CreateDitherPalette();

////    特技显示 ///


#endif 

⌨️ 快捷键说明

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