www.pudn.com > hongmodingweiyuanchengxu.rar > MyHeadFile.h


//头文件 
/* 
	本程序是练习时顺手写的程序,简陋至极,欢迎高手指点。 
 
	“打开”一幅虹膜样本就可以进行操作。 
 
				作者:	吴春雷 
				QQ:		26885133 
				群:		29153069 
				EMail:	wuchunlei@163.com 
*/ 
 
#include "ReadBmpFile.h" 
#include "PicOpt.h" 
#include "math.h" 
 
CReadBmpFile m_ReadBmpFile; 
unsigned char **sBmpData; 
BITMAPINFOHEADER stBmpInfoHeader; 
BITMAPFILEHEADER stBmpFileHeader; 
RGBQUAD *stRgbQuad; 
long nWidth,nHeight;					//保存原始图像高度 
long nResultX,nResultY,nResultRP,nResultR;	//最终的瞳孔圆心、瞳孔半径、虹膜半径 
 
unsigned char **sNewBmpData;			//保存粗定位得到的角膜外切矩形内的BmpData数据 
BITMAPINFOHEADER stNewBmpInfoHeader; 
BITMAPFILEHEADER stNewBmpFileHeader; 
 
unsigned char **sOldBmpData;			//保存最原始的数据 
BITMAPINFOHEADER stOldBmpInfoHeader; 
BITMAPFILEHEADER stOldBmpFileHeader; 
 
 
void ShowBmpToDC(CDC *pDC,long nX,long nY,unsigned char **sBmpData,BITMAPINFOHEADER stBmpInfoHeader){			//显示图片到屏幕上 
	long nHeight,nWidth; 
	long i,j; 
	 
	nHeight=stBmpInfoHeader.biHeight; 
	nWidth=stBmpInfoHeader.biWidth; 
 
	pDC->MoveTo(nX,nY);			//移动到显示图片的位置 
	for (i=0;iSetPixel(j+nX,nHeight-i+nY,RGB(sBmpData[i][j],sBmpData[i][j],sBmpData[i][j])); 
		} 
	} 
 
} 
void SaveBmpFile(CString sFilePath,unsigned char **sBmpData,BITMAPINFOHEADER stBmpInfoHeader, 
				 BITMAPFILEHEADER stBmpFileHeader,RGBQUAD *stRgbQuad){		//保存文件 
	int i,j; 
	CFile m_File; 
	int nBC; 
	unsigned char sTemp[4]={0},cTemp;; 
	if (!m_File.Open((LPCTSTR)sFilePath,CFile::modeWrite | CFile::modeCreate)){ 
		AfxMessageBox("文件打开失败!"); 
		return ; 
	} 
	//写入头文件信息 
	m_File.Write(&stBmpFileHeader,sizeof(BITMAPFILEHEADER)); 
	m_File.Write(&stBmpInfoHeader,sizeof(BITMAPINFOHEADER)); 
 
	m_File.Write(stRgbQuad,sizeof(RGBQUAD)*stBmpInfoHeader.biClrUsed); 
 
 
	m_File.Seek(1078,CFile::begin); 
	//计算补偿 
	nBC=4-stBmpInfoHeader.biWidth%4; 
	if (nBC==4) nBC=0; 
 
	CString sStr; 
	sStr.Format("%d",nBC); 
	AfxMessageBox(sStr); 
 
 
	//写入数据 
	for (i=0;i