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

📄 dibapihead.h

📁 面向软件工程的Visual C++网络程序开发
💻 H
字号:
// ==== File : DibApiHead.h ========
#ifndef DIBAPIHEAD_H
#define DIBAPIHEAD_H


#define DIB_HEADER_MARKER	19778
#define PW_WINDOW			1
#define PW_CLIENT			2
#define PALVERSION			0x300

#define HDIB	HANDLE

#define LEFT_UP				0
#define CENTER_UP			1
#define RIGHT_UP			2
#define	LEFT_CENTER			3
#define CENTER_CENTER		4
#define CENTER_RIGHT		5
#define LEFT_DOWN			6
#define CENTER_DOWN			7
#define RIGHT_DOWN			8


#define WIDTHBYTES(bits)	(((bits)+31)/32*4)
#define IS_WIN30_DIB(lpbi)	(*(LPDWORD)(lpbi) == sizeof(BITMAPINFOHEADER))
#define RECTWIDTH(prect)	((prect)->right-(prect)->left)
#define RECTHEIGHT(prect)	((prect)->bottom-(prect)->top)
#define PIXEL_OFFSET(i,j,nWidthBytes) \
			(LONG)((LONG)(i)*(LONG)(nWidthBytes)+(LONG)(j)*3)
#define BOUND(x, mn, mx)	((x)<(mn)?(mn):((x)>(mx)?(mx):(x)))

#define REDBYTE(colorref)	(BYTE)(colorref & 0X000000FF)
#define GREENBYTE(colorref)	((colorref >> 8) & 0x000000FF)
#define BLUEBYTE(colorref)	((colorref >> 16) & 0x000000FF) 

typedef BYTE				FAR*LPBYTE;
typedef DWORD				FAR*LPDWORD;


typedef struct tagNODE{
	BOOL bIsLeaf;
	UINT nPixelCount;
	UINT nRedSum;
	UINT nGreenSum;
	UINT nBlueSum;
	struct tagNODE * pChild[8];
	struct tagNODE * pNext;
} NODE;


#define FILTER1				1
#define FILTER2				2
#define FILTER3				3

#define VERT				1
#define	HORZ				2
#define VERTHORZ			3
#define NORTH				4
#define NORTHEAST			5
#define EAST				6
#define SOUTH				7
#define SOUTHEAST			8
#define SOUTHWEST			9
#define WEST				10
#define NORTHWEST			11
#define LAP1				12
#define LAP2				13
#define LAP3				14
#define LAP4				15
#define SOBEL				16
#define HOUGH				17

#define MAXIMUM_GRAY		0
#define MEAN_GRAY			1
#define WEIGHT_GRAY			2

#define UNDEFINED			(-1.0)

#define RGB_COLOR			0
#define CMYK_COLOR			1
#define HSI_COLOR			2
#define HLS_COLOR			3

#define ALIGN_DWORD(x)  (((x)+3)/4 * 4)
#define GetRGBPixel(Addr, Red, Green, Blue)  \
				Blue = (int) * (Addr);		\
				Green = (int)*(Addr+1);		\
				Red = (int) * (Addr+2);
#define PutRGBPixel(Addr, Red, Green, Blue)  \
			Red = (Red<0) ? 0 : Red;\
			Red = (Red>255) ? 255:Red;  \
			Green = (Green<0)?0:Green;  \
			Green = (Green>255)?255:Green;  \
			Blue = (Blue<0)?0:Blue;  \
			Blue = (Blue>255)?255:Blue; \
			*(Addr)  = (BYTE)Blue; \
			*(Addr+1) = (BYTE)Green; \
			*(Addr+2) = (BYTE)Red;

typedef struct tagRGBCOLOR{
	BYTE Red;
	BYTE Green;
	BYTE Blue;
}RGBCOLOR;

#endif

⌨️ 快捷键说明

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