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