www.pudn.com > 图像处理源代码.rar > image.h


#if !defined _IMAGE_H_ 
#define _IMAGE_H_ 
 
//定义内存中的图象数据体 
typedef struct{ 
	int Width;			//图象宽度 
	int Height;			//图象高度 
	int ColorTabNumber;	//颜色表项数 
	RGBQUAD *ColorTab;	//颜色表 
	int BitCount;		//每象素的位数 
	BYTE *ImgData;		//图象数据,存储顺序为由下到上 
}MYIMAGE; 
 
typedef struct { 
	BYTE	Manufacture;		//PCX格式标志,总为0X0A 
	BYTE	Version;			//版本 
	BYTE	Encoding;			//总为1,表示PCX文件全部用RLL压缩 
	BYTE	BitCount;			//BITS PER PIXEL 每象素所占位数(每个位平面) 
	WORD	Xmin,Ymin,Xmax,Ymax;//决定图象大小 
	WORD	Hres,Vres;			//目标设备的水平和垂直分辨率 
	BYTE	Palette[48];		//16位调色板,256色在文件最后,以0x0C开始共769字节 
	BYTE	Reserved;			//保留字节 
	BYTE	ColorPlanes;		//位平面数 
	WORD	BytePerLine;		//每个扫描行字节数(每个位平面) 
	WORD	PaletteType;		//调色板类型 1--灰度  2--彩色 
	BYTE	Filler[58];			//填充字节,为空 
}PCXFILEHEADER; 
 
#define BMPFILEHEADER_SIZE	14		//BMP文件头长度 
#define BMPINFOHEADER_SIZE  40		//BMP信息头长度 
#define PCXFILEHEADER_SIZE	128		//PCX文件头长度 
 
#define TYPE_IMAGE	1 
#define TYPE_HISTO	2 
 
BOOL SavePcx(CString FileName,MYIMAGE* img,HWND hwnd); 
BOOL SaveBmp(CString FileName,MYIMAGE* img,BOOL Compression,HWND hwnd); 
MYIMAGE* ReadPcx(CString FileName,HWND hwnd); 
MYIMAGE* ReadBmp(CString FileName,HWND hwnd); 
BOOL DisplayHistogram(CWnd *pWnd,int *Histo); 
 
typedef struct{			//HUFFMAN码表中的项 
	long int count;		//该编码出现的次数,可以看作概率 
	int codelen;		//HUFFMAN码长 
	long int codeval;	//HUFFMAN编码 
}CODETABLEITEM; 
 
struct TWOTREE{			//HUFFMAN树中的结点 
	TWOTREE* lChild;	//左分支 
	TWOTREE* rChild;	//右分支 
	TWOTREE* Parent;	//父结点 
	int indexvalue;		//颜色索引值 
	long int count;			//该结点下的所有概率之和 
}; 
 
typedef struct { 
	int indexvalue;	//颜色索引值 
	long int count;	//该索引值对应的出现次数,可以表示概率 
}HISTOARRAY; 
 
#endif