Пример #1
0
        public int CaptureEvent(object sender, UFScannerCaptureEventArgs e)
        {
            // We cannot use pbImageFrame.Image directly from the different thread,
            // so we use UpdatePictureBox() to update PictureBox indirectly
            UpdatePictureBox(pbImageFrame, e.ImageFrame);

            return(1);
        }
Пример #2
0
        public int EnrollEvent(object sender, UFScannerCaptureEventArgs e)
        {
            byte[]     Template;
            int        TemplateSize;
            int        nEnrollQuality;
            UFS_STATUS ufs_res;
            string     strError;

            Template = new byte[MAX_TEMPLATE_SIZE];

            if (!m_try_extract)
            {
                if (!e.FingerOn)
                {
                    m_try_extract  = true;
                    m_bFingerCheck = false;
                    SetTextMessage("Place your finger\r\n");
                }
                else
                {
                    if (!m_bFingerCheck)
                    {
                        SetTextMessage("Remove your fingerprint from scanner\r\n");
                        m_bFingerCheck = true;
                    }
                }

                UpdatePictureBox(pbImageFrame, e.ImageFrame);
                return(1);
            }

            if (e.FingerOn && m_try_extract)
            {
                ufs_res = m_Scanner.ExtractEx(MAX_TEMPLATE_SIZE, Template, out TemplateSize, out nEnrollQuality);
                if (ufs_res == UFS_STATUS.OK)
                {
                    if (nEnrollQuality < m_quality)
                    {
                        SetTextMessage("Template Quality is too low\r\n");
                    }
                    else
                    {
                        System.Array.Copy(Template, 0, m_EnrollTemplate_input[m_extract_num], 0, TemplateSize);
                        m_EnrollTemplateSize_input[m_extract_num] = TemplateSize;
                        m_extract_num++;
                        SetTextMessage("UFS_Extract: OK (" + m_extract_num + "/4)\r\n");
                        m_try_extract = false;

                        if (m_extract_num == MAX_TEMPLATE_INPUT_NUM)
                        {
                            ufs_res = m_Scanner.SelectTemplateEx(MAX_TEMPLATE_SIZE, m_EnrollTemplate_input, m_EnrollTemplateSize_input, 4, m_EnrollTemplate_output, m_EnrollTemplateSize_output, m_output_num);
                            if (ufs_res == UFS_STATUS.OK)
                            {
                                SetTextMessage("Extraction process is succeed\r\n");
                                if (m_output_num == 1)
                                {
                                    // output template number is 1
                                }
                                else if (m_output_num == 2)
                                {
                                    // output template number is 2
                                }
                                else
                                {
                                    SetTextMessage("template output number is not correct\r\n");
                                }
                            }
                            else
                            {
                                SetTextMessage("Extraction process is faild\r\n");
                            }
                            UpdatePictureBox(pbImageFrame, e.ImageFrame);
                            return(0);
                        }
                    }
                }
                else
                {
                    UFScanner.GetErrorString(ufs_res, out strError);
                    SetTextMessage("UFS_Extract:" + strError + "\r\n");
                }
            }

            UpdatePictureBox(pbImageFrame, e.ImageFrame);

            return(1);
        }