private void axZKFPEngX1_OnEnroll(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnEnrollEvent e) { m_finger = Convert.ToBase64String((byte[])e.aTemplate); axZKFPEngX1.EndEngine(); BtnFinger.Enabled = true; BtnFinger.Text = "重新获取指纹"; }
private void axZKFPEngX1_OnEnroll(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnEnrollEvent e) { m_member.CI_Password = Convert.ToBase64String((byte[])e.aTemplate); if (!dao.execute_command("update [CardInfo] set CI_Password='******' where CI_CardNo='"+m_member.CI_CardNo+"'")) { m_member.CI_Password = null; BathClass.printErrorMsg("将指纹数据写入数据库失败,请重试!"); } else { m_verified_finger = true; axZKFPEngX1.EndEngine(); this.DialogResult = DialogResult.OK; } }
private void axZKFPEngX1_OnCapture(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnCaptureEvent e) { if (m_member.CI_Password != null && m_member.CI_Password != "") { bool RegChanged = false; string tmp = axZKFPEngX1.GetTemplateAsString(); object obj1 = null; bool rt = axZKFPEngX1.DecodeTemplate(m_member.CI_Password, ref obj1); object obj2 = null; rt = axZKFPEngX1.DecodeTemplate(tmp, ref obj2); rt = axZKFPEngX1.VerFinger(ref obj1, obj2, false, ref RegChanged); axZKFPEngX1.EndEngine(); m_verified_finger = rt; this.DialogResult = DialogResult.OK; } }
private void axZKFPEngX1_OnFeatureInfo(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnFeatureInfoEvent e) { string strTemp = "指纹质量"; if (e.aQuality == 0) { strTemp = strTemp + "合格"; } else { if (e.aQuality == 1) { strTemp = strTemp + "特征点不够"; } else strTemp = strTemp + "不合格"; } if (axZKFPEngX1.IsRegister) if (axZKFPEngX1.EnrollIndex != 1) strTemp = strTemp + ",请再按 " + (axZKFPEngX1.EnrollIndex - 1).ToString() + "次指纹"; else strTemp = strTemp + ",登记成功"; BtnFinger.Text = strTemp; }
private void axZKFPEngX1_OnImageReceived(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnImageReceivedEvent e) { Graphics g = pictureBox1.CreateGraphics(); Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height); g = Graphics.FromImage(bmp); int handle1 = g.GetHdc().ToInt32(); axZKFPEngX1.PrintImageAt(handle1, 0, 0, bmp.Width, bmp.Height); g.Dispose(); pictureBox1.Image = bmp; }
//取得指纹初始特征,0:好的指纹特征 1:特征点不够 static void ZKFPEngX1_OnFeatureInfo(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnFeatureInfoEvent e) { String strTemp = "指纹采集质量"; if (e.aQuality != 0) { Program.frmInput.change_control_state(frmInputFingerPrintState.get_bad_print, null); strTemp = strTemp + "较差"; } else { Program.frmInput.change_control_state(frmInputFingerPrintState.get_good_print, null); strTemp = strTemp + "良好"; } if (g_ZKFP.IsRegister && g_ZKFP.EnrollIndex > 1) { //ShowHintInfo("正在进行第" + (4 - g_ZKFP.EnrollIndex).ToString() + "次登记,尚需" + (g_ZKFP.EnrollIndex - 1).ToString() + "次"); } //ShowHintInfo(strTemp); }
//将指纹登记特征模版保存到指纹识别高速缓冲空间,并显示指纹登记结果 static void ZKFPEngX1_OnEnroll(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnEnrollEvent e) { if (e.actionResult) { string tmp9 = g_ZKFP.GetTemplateAsStringEx("9"); Program.play_voice("指纹登记成功!"); Program.frmInput.change_control_state(frmInputFingerPrintState.register_print_success, null); //ShowHintInfo("指纹登记成功!"); //frmStudentM.set_fp_string(tmp9); } else { //ShowHintInfo("指纹登记失败"); Program.frmInput.change_control_state(frmInputFingerPrintState.register_print_failed, null); } }
static void ZKFPEngX1_OnCapture(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnCaptureEvent e) { int ID = 0, i; int Score = 0; //e.aTemplate为object类型数据,将其分离并转化为整型 Array _ObjectArray = (Array)e.aTemplate; ID = Convert.ToInt32(_ObjectArray.GetValue(0)); Score = Convert.ToInt32(_ObjectArray.GetValue(1)); if (ID == -1) { Program.frmIdentify.change_control_state(1, null); //lblresult.Text = "Fingerprint Auto Identify Failed!"; } else { //lblresult.Text = "Fingerprint Auto identification success!"; Program.frmIdentify.change_control_state(0, ID); } }
//获取指纹图像并在窗口中实时显示 private void ZKFPEngX1_OnImageReceived(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnImageReceivedEvent e) { ShowHintImage(0); Graphics g = PictureBox1.CreateGraphics(); Bitmap bmp = new Bitmap(PictureBox1.Width, PictureBox1.Height); g = Graphics.FromImage(bmp); int dc = g.GetHdc().ToInt32(); ZKFPEngX1.PrintImageAt(dc, 0, 0, bmp.Width, bmp.Height); g.Dispose(); PictureBox1.Image = bmp; }
//取得指纹初始特征,0:好的指纹特征 1:特征点不够 private void ZKFPEngX1_OnFeatureInfo(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnFeatureInfoEvent e) { String strTemp = "Fingerprint quality"; if (e.aQuality != 0) { strTemp = strTemp + " not good"; } else { strTemp = strTemp + " good"; } if (ZKFPEngX1.EnrollIndex != 1) { if (ZKFPEngX1.IsRegister) { if (ZKFPEngX1.EnrollIndex - 1 > 0) { strTemp = strTemp + '\n'+ " Register status: still press finger " + Convert.ToString(ZKFPEngX1.EnrollIndex-1) + " times!"; } } } ShowHintInfo(strTemp); }
//将指纹登记特征模版保存到指纹识别高速缓冲空间,并显示指纹登记结果 private void ZKFPEngX1_OnEnroll(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnEnrollEvent e) { if (e.actionResult) { MessageBox.Show("Fingerprint register success! ", "提示! ", MessageBoxButtons.YesNo); //e.aTemplate = ZKFPEngX1.GetTemplate(); //ZKFPEngX1.AddRegTemplateToFPCacheDB(fpcHandle, 1, e.aTemplate); ZKFPEngX1.AddRegTemplateStrToFPCacheDBEx(fpcHandle, 1, ZKFPEngX1.GetTemplateAsStringEx("9"), ZKFPEngX1.GetTemplateAsStringEx("10")); ShowHintInfo("Fingerprint register success!"); } else { ShowHintInfo("Fingerprint register failed"); MessageBox.Show("Fingerprint register failed ", "提示! ", MessageBoxButtons.YesNo); } }
//指纹比对事件 (该例中只有1:N比对,即同指纹识别高速缓冲空间德指纹信息进行比对) private void ZKFPEngX1_OnCapture(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnCaptureEvent e) { int ID,i; int Score = new int(); int ProcessNum = new int(); ShowHintInfo("Acquired fingerprint template:"); if (FMatchType == 1)//1:1比对(一般用法为把登记好的指纹保存到数据库,1:1比对时,先从数据库获取到相应编号的指纹模板,再同现在比对时获取的指纹进行比对) { //下面该段代码未实现 sRegTemp为从数据库获取的指纹模板, sVerTemplate为该时刻比对时的指纹 //ZKFPEngX1.VerFingerFromStr(sRegTemp, sVerTemplate, False, ref regChange) } if (FMatchType == 2)//1:N比对 { if (!FAutoIdentify) { if (Radio9.Checked) { ZKFPEngX1.FPEngineVersion = "9"; ID = ZKFPEngX1.IdentificationFromStrInFPCacheDB(fpcHandle, ZKFPEngX1.GetTemplateAsStringEx("9"), ref Score, ref ProcessNum); } else { ZKFPEngX1.FPEngineVersion = "10"; ID = ZKFPEngX1.IdentificationFromStrInFPCacheDB(fpcHandle, ZKFPEngX1.GetTemplateAsStringEx("10"), ref Score, ref ProcessNum); } if (ID == -1) { ShowHintInfo("Identification Failed! Score = " + Convert.ToString(Score)); ShowHintImage(2); } else { String strTemp = "Identification success!\n" + " Score =" + Convert.ToString(Score); ShowHintInfo(strTemp); ShowHintImage(1); } if (ID > 0) { lblresult.Text = "Verify success"; } else { lblresult.Text = "Sorry,Verify failed!"; } } else { ID = 0; Score = 0; //e.aTemplate为object类型数据,将其分离并转化为整型 Array _ObjectArray = (Array)e.aTemplate; int _ObjectCount = _ObjectArray.GetLength(0); for (i = 0; i<2; i++) { if (i == 0) { ID = Convert.ToInt32(_ObjectArray.GetValue(i)); } else { Score = Convert.ToInt32(_ObjectArray.GetValue(i)); } } if (ID == -1) { lblresult.Text = "Fingerprint Auto Identify Failed!"; ShowHintInfo("Fingerprint Auto Identify Failed!"); ShowHintImage(2); } else { lblresult.Text = "Fingerprint Auto identification success!"; ShowHintInfo("Fingerprint Auto identification success! Score =" + Convert.ToString(Score)); ShowHintImage(1); } } } }