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

📄 stddefine.h

📁 一个国人自己实现图像库的程序(有参考价值)
💻 H
字号:
#ifndef		__FOO_STDDEFINE_H__
#define		__FOO_STDDEFINE_H__
#include <windows.h>
#pragma once

//=============================================================================
//	常数
//=============================================================================
const double	LIB_PI = 3.1415926536 ;
//=============================================================================
//	基本数据类型
//=============================================================================
typedef		signed char		INT8 ;
typedef		unsigned char	UINT8 ;
typedef		signed short	INT16 ;
typedef		unsigned short	UINT16 ;
typedef		signed int		INT32 ;
typedef		unsigned int	UINT32 ;
//=============================================================================
//	逻辑操作
//=============================================================================
#define		LOG_OPERATION_AND			0x00000001
#define		LOG_OPERATION_OR			0x00000002
#define		LOG_OPERATION_XOR			0x00000004
#define		LOG_OPERATION_ADD			0x00000008
#define		LOG_OPERATION_SUB			0x00000010
#define		LOG_OPERATION_MUL			0x00000020
#define		LOG_OPERATION_DIV			0x00000040
//=============================================================================
//	平面8个方向
//=============================================================================
#define		DIRECT_UPPER_LEFT			0x00000001
#define		DIRECT_UPPER				0x00000002
#define		DIRECT_UPPER_RIGHT			0x00000004
#define		DIRECT_LEFT					0x00000008
#define		DIRECT_RIGHT				0x00000010
#define		DIRECT_LOWER_LEFT			0x00000020
#define		DIRECT_LOWER				0x00000040
#define		DIRECT_LOWER_RIGHT			0x00000080
//=============================================================================
//	16, 32 位色的掩码
//=============================================================================
#define		MASK16_RED_565				0x0000F800
#define		MASK16_GREEN_565			0x000007E0
#define		MASK16_BLUE_565				0x0000001F
#define		MASK16_RED_555				0x00007C00
#define		MASK16_GREEN_555			0x000003E0
#define		MASK16_BLUE_555				0x0000001F
#define		MASK32_ALPHA				0xFF000000
#define		MASK32_RED					0x00FF0000
#define		MASK32_GREEN				0x0000FF00
#define		MASK32_BLUE					0x000000FF
//=============================================================================
//	RGBA通道
//=============================================================================
#define		CHANNEL_RED					0x00000001
#define		CHANNEL_GREEN				0x00000002
#define		CHANNEL_BLUE				0x00000004
#define		CHANNEL_ALPHA				0x00000008
//=============================================================================
//	图形文件格式
//=============================================================================
#define		IMAGE_UNKNOW				0x00000000
#define		IMAGE_BMP					0x00000001
#define		IMAGE_PCX					0x00000002
#define		IMAGE_JPEG					0x00000004
#define		IMAGE_GIF					0x00000008
#define		IMAGE_TGA					0x00000010
#define		IMAGE_TIFF					0x00000020
#define		IMAGE_PNG					0x00000040
#define		IMAGE_ICO					0x00000080
#define		IMAGE_WMF					0x00000100

#define		GIF_MAX_FRAME				0x00000800 // 最多支持2048帧的GIF
//=============================================================================
// Foolish Simple Demo Windows Classes
//=============================================================================
#define		WND_DEFAULT_CLASS		TEXT("Foolish_Class_Template")
#define		WND_PROPERTY_this		TEXT("this_address")
#define		INVALID_FILE_ATTRIBUTES	0xFFFFFFFF

#define		DLG_RESIZE_MOVE			0x00000001
#define		DLG_RESIZE_STRETCH		0x00000002

//=============================================================================
//	FCBitmap::DrawEx(...) 的 ShowParam 参数
//=============================================================================
typedef struct tagSHOWEFFECT
{
	DWORD	dwMethod ;		// 方法
	DWORD	dwSubMethod ;	// 具体方法
	DWORD	dwInterval ;	// 间隔的 (微/毫) 秒数
	DWORD	dwBlockLen ;	// 视方法而定
	RECT	rcClient ;		// 显示的区域
	SIZE	sizeStretch ;	// SHOWDIB_STRETCH 和 SHOWDIB_ISOSTRETCH 的目标大小
} SHOWEFFECT, * PSHOWEFFECT ;
//#define		SHOWDIB_CENTER			0x40000000 // 此方法可以和以下方法‘|’

#define		SHOWDIB_NORMAL			0x80000000
#define		SHOWDIB_STRETCH			0x00000001
#define		SHOWDIB_ISOSTRETCH		0x00000002 // 成比例缩放

//	SCAN方法 : dwInterval域为间隔<微>秒数
#define		SHOWDIB_SCAN			0x00000004 
#define			SHOWDIB_SCAN_TODOWN		0x0001 
#define			SHOWDIB_SCAN_TOUP		0x0002
#define			SHOWDIB_SCAN_TOLEFT		0x0004
#define			SHOWDIB_SCAN_TORIGHT	0x0008
#define			SHOWDIB_SCAN_HORIZON	0x0010
#define			SHOWDIB_SCAN_VERTICAL	0x0020
#define			SHOWDIB_SCAN_VINTERLACE	0x0040
#define			SHOWDIB_SCAN_HINTERLACE	0x0080

//	MOVE方法 : dwInterval域为间隔<微>秒数
//			   对于较大的图片会较慢
#define		SHOWDIB_MOVE			0x00000008
#define			SHOWDIB_MOVE_TODOWN		0x0001
#define			SHOWDIB_MOVE_TOUP		0x0002
#define			SHOWDIB_MOVE_TOLEFT		0x0004
#define			SHOWDIB_MOVE_TORIGHT	0x0008
#define			SHOWDIB_MOVE_HORIZON	0x0010
#define			SHOWDIB_MOVE_VERTICAL	0x0020

//	百叶窗方法 : dwInterval域为间隔<毫>秒数
//				 dwBlockLen域为块的间隔
#define		SHOWDIB_HSHUTTER		0x00000010
#define		SHOWDIB_VSHUTTER		0x00000020

//	马赛克显示方法 : dwInterval域为间隔<微>秒数
//					 dwBlockLen域为小正方形边长
#define		SHOWDIB_MOSAIC			0x00000040

//	渐现方法 : dwInterval域为间隔<毫>秒数
//			   dwBlockLen域为跨度
#define		SHOWDIB_FADE			0x00000080
#define		SHOWDIB_FADE_SCAN		0x00000100

//=============================================================================
//	FCDibEffect::Algorithm () 参数
//=============================================================================
#define		EFFECT_SMOOTH_1				0x00000001	// 平滑
#define		EFFECT_SMOOTH_2				0x00000002
#define		EFFECT_SMOOTH_3				0x00000004
#define		EFFECT_SHARP_1				0x00000008	// 锐化
#define		EFFECT_SHARP_2				0x00000010
#define		EFFECT_SHARP_3				0x00000020
#define		EFFECT_ENHANCE_VERT			0x00000040	// 边缘增强
#define		EFFECT_ENHANCE_HORZ			0x00000080
#define		EFFECT_ENHANCE_NORTH		0x00000100
#define		EFFECT_ENHANCE_SOUTH		0x00000200
#define		EFFECT_ENHANCE_WEST			0x00000400
#define		EFFECT_ENHANCE_EAST			0x00000800
#define		EFFECT_ENHANCE_NORTHEAST	0x00001000
#define		EFFECT_ENHANCE_SOUTHWEST	0x00002000
#define		EFFECT_ENHANCE_NORTHWEST	0x00004000
#define		EFFECT_ENHANCE_SOUTHEAST	0x00008000
#define		EFFECT_ENHANCE_VERTHORZ		0x00010000
#define		EFFECT_ENHANCE_LAPLACE1		0x00020000	// Laplace边缘增强
#define		EFFECT_ENHANCE_LAPLACE2		0x00040000
#define		EFFECT_ENHANCE_LAPLACE3		0x00080000
#define		EFFECT_ENHANCE_LAPLACE4		0x00100000

typedef struct tagFOODIB
{
	BITMAPINFOHEADER	DibInfo ;  // DIB Info
	HBITMAP				hBitmap ;  // Handle from CreateDIBSection (DIB-Handle)
	BYTE			  * pByte ;	   // Bitmap bits, left-bottom point
	BYTE			 ** ppLine ;   // Line-pointer , ppLine[] ; 自上而下
} FOODIB, * PFOODIB ;

typedef struct tagFPICINFO
{
	DWORD		dwImageType ;		// 文件类型, 见上 : IMAGE_XXX
	DWORD		dwWidth ;			// 宽
	DWORD		dwHeight ;			// 高
	DWORD		dwLoadTime ;		// 读取时间(ms)
	WORD		wBitCount ;			// Gif则为真实颜色位数 [1..8]
	WORD		wTotalFrame	;		// 文件所包含帧数
	WORD		wDelayTime ;		// 两帧间延时毫秒数
	BYTE		byInterlace ;		// 是否以交错方式存储
	BYTE		byTransFlag ;		// 是否有透明色
	RGBQUAD		rgbTransparency ;	// 透明色索引值, 此颜色不显示在屏幕上
} FPICINFO, * PFPICINFO ; // 图像文件信息

typedef struct tagVOLUMEINFO // 磁盘信息
{
	TCHAR	 Driver[32] ; 			
	TCHAR	 FileType[32] ;			// 文件系统类型 (such as "FAT32", "FAT16", "NTFS", "CDFS")
	TCHAR 	 VolumeName[32] ;		// 磁盘卷标
	DWORD 	 DiskType ;				// 磁盘类型 ( 见::GetDriveType )
	DWORD	 dwVolumeSerialNumber ;	// 磁盘序列号
} VOLUMEINFO, * PVOLUMEINFO ;

typedef struct tagDISPLAYMODE
{
	DWORD	dwBits ;
	DWORD	dwWidth ;
	DWORD	dwHeight ;
	DWORD	dwFrequency ;
} DISPLAYMODE, * PDISPLAYMODE ; // 屏幕信息

//=============================================================================

#endif

⌨️ 快捷键说明

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