Пример #1
0
        private void button1_Click(object sender, EventArgs e)
        {
            #region button1_Click
            //string[] rollFingerFilename = new string[] { "C:\\Temp\\huellas\\leftThumb.bmp", "C:\\Temp\\huellas\\rightIndex,bmp", "C:\\Temp\\huellas\\rightMiddle.bmp", "C:\\Temp\\huellas\\rightRing.bmp", "C:\\Temp\\huellas\\rightLittle.bmp" };
            //int[] rollFingerType = new int[]{ RealScanExtendSDK.RSE_FGP_LEFT_THUMB, RealScanExtendSDK.RSE_FGP_LEFT_INDEX, RealScanExtendSDK.RSE_FGP_LEFT_MIDDLE, RealScanExtendSDK.RSE_FGP_LEFT_RING, RealScanExtendSDK.RSE_FGP_LEFT_LITTLE  };

            //string[] rollFingerFilename = new string[] { "rightLittle.bmp", "rightRing.bmp", "rightMiddle.bmp", "rightIndex,bmp" };
            //int[] rollFingerType = new int[] { RealScanExtendSDK.RSE_FGP_LEFT_LITTLE, RealScanExtendSDK.RSE_FGP_LEFT_RING, RealScanExtendSDK.RSE_FGP_LEFT_MIDDLE, RealScanExtendSDK.RSE_FGP_LEFT_INDEX };


            int         numDedos    = 0;
            RSESlapInfo RSESlapInfo = new RSESlapInfo();
            try
            {
                if (Init_SDK() == false)
                {
                    return;
                }

                if (initDevice() == false)
                {
                    return;
                }


                if (RealScanExtendSDK.RSE_InitSDK() != 0)
                {
                    MessageBox.Show("Error al inicializar SDK (RSE_SDK.DLL) ", "Error");
                    return;
                }

                int[]    impressionTypes     = new int[] { RealScanExtendSDK.RSE_IMP_NON_LIVESCAN_PLAIN };
                int[]    fingerPalmPositions = new int[] { RealScanExtendSDK.RSE_FGP_LEFT_INDEX };
                string[] fingerPalmFilenames = new string[] { "C:\\Temp\\huellas\\dedo.bmp" };

                //int result = RealScanExtendSDK.RSE_SegmentSlap("C:\\Temp\\huellas\\izq.bmp", RealScanExtendSDK.RSE_SLAP_LEFT_FOUR, ref numDedos,  ref RSESlapInfo, true, "dedoIzq");
                //int result = RealScanExtendSDK.RSE_MakeAN2007File(deviceHandle, "C:\\Temp\\huellas\\izq.bmp", null, null, 4, rollFingerType, rollFingerFilename, "C:\\Temp\\huellas\\testFile.an2");



                int result = RealScanExtendSDK.RSE_SetType1Info("CPS", 4, "KR/KOR1", "KR/KOR2", "0747439609K", "TCR", ref info);
                //RSE_SetType1Info( string TOT, int priority, string DAI, string ORI, string TCN, string TCR, ref RSEType1Info info );
                result = RealScanExtendSDK.RSE_MakeAN2007FileEx(deviceHandle, ref info, "C:\\Temp\\huellas\\dedoIzq07.bmp", "C:\\Temp\\huellas\\dedoIzq07.bmp", "C:\\Temp\\huellas\\dedoIzq07.bmp", 1, fingerPalmPositions, fingerPalmFilenames, "C:\\Temp\\huellas\\testFile.dat");

                //result = RealScanExtendSDK.RSE_MakeAN2007File(deviceHandle, "C:\\Temp\\huellas\\dedoIzq07.bmp", null, null, 1, fingerPalmPositions, fingerPalmFilenames, "C:\\Temp\\huellas\\testFile.an2");

                //int res = RealScanExtendSDK.RSE_MakeISOImageFile("C:\\Temp\\huellas\\dedoIzq07.bmp", null, null, 1, rollFingerType, rollFingerFilename, 0, rollFingerType, rollFingerFilename, false, "C:\\Temp\\huellas\\huella.img19794");
                int res = RealScanExtendSDK.RSE_Make38104ImageFile(1010, 1, 1, impressionTypes, fingerPalmPositions, fingerPalmFilenames, "C:\\Temp\\huellas\\Result_INCITS381_2004.dat");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                exit_Device();
            }
            #endregion
        }
Пример #2
0
        private void Form1_Load(object sender, EventArgs e)
        {
            #region Form1_Load
            switch (param[0])
            {
            case "3":
                this.Text         = "Captura: Pulgares";
                label1.Text       = "Pulgares faltantes:";
                clbPulgar.Visible = true;
                clbDedo.Visible   = false;
                break;

            case "4":
                this.Text         = "Captura: dedos mano izquierda";
                label1.Text       = "Dedos faltantes:";
                clbPulgar.Visible = false;
                clbDedo.Visible   = true;
                break;

            case "5":
                this.Text         = "Captura: dedos mano derecha";
                label1.Text       = "Dedos faltantes:";
                clbPulgar.Visible = false;
                clbDedo.Visible   = true;
                break;

            default:
                this.Text = "Captura";
                break;
            }



            if (Init_SDK() == false)
            {
                return;
            }

            if (initDevice() == false)
            {
                return;
            }

            if (RealScanExtendSDK.RSE_InitSDK() != 0)
            {
                MessageBox.Show("Error al inicializar SDK (RSE_SDK.DLL) ", "Error");
                return;
            }

            _selectedPrevMode = PrevMode.directDraw;
            SetPreview();

            Take_Auto();

            #endregion
        }
Пример #3
0
        private void SegmentSaveImageCaptureProcess(IntPtr imageData, int imageWidth, int imageHeight, int numOfFingers, RSSlapInfoArray slapInfo, IntPtr[] ImageBuffer, int[] ImageWidth, int[] ImageHeight)
        {
            #region SegmentSaveImageCaptureProcess
            string bmp;
            string wsq;
            int    dedo = 0;
            int    result;
            int    n             = 0;
            byte[] huella        = null;
            byte[] template      = null;
            byte[] archivoWSQMem = null;
            int[]  dedoPerdido   = new int[] { 0, 0, 0, 0 };
            int[]  pulgarPerdido = new int[] { 0, 0 };
            string palma;

            try
            {
                #region genera arreglo para identificar dedo sin huella
                switch (param[0])
                {
                case "3":         //PULGARES
                    for (int i = 0; i < 2; i++)
                    {
                        if (clbPulgar.GetItemChecked(i))
                        {
                            switch (i)
                            {
                            case 0:
                                dedoPerdido[0] = 0;
                                break;

                            case 1:
                                dedoPerdido[1] = 0;
                                break;
                                break;
                            }
                        }
                        else
                        {
                            switch (i)
                            {
                            case 0:
                                dedoPerdido[0] = 6;
                                break;

                            case 1:
                                dedoPerdido[1] = 1;
                                break;
                            }
                        }
                    }
                    break;

                case "4":        //4 DEDOS MANO IZQUIERDA
                    for (int i = 0; i < 4; i++)
                    {
                        if (clbDedo.GetItemChecked(i))
                        {
                            switch (i)
                            {
                            case 0:
                                dedoPerdido[0] = 0;
                                break;

                            case 1:
                                dedoPerdido[1] = 0;
                                break;

                            case 2:
                                dedoPerdido[2] = 0;
                                break;

                            case 3:
                                dedoPerdido[3] = 0;
                                break;
                            }
                        }
                        else
                        {
                            switch (i)
                            {
                            case 0:
                                dedoPerdido[0] = 10;
                                break;

                            case 1:
                                dedoPerdido[1] = 9;
                                break;

                            case 2:
                                dedoPerdido[2] = 8;
                                break;

                            case 3:
                                dedoPerdido[3] = 7;
                                break;
                            }
                        }
                    }
                    break;

                case "5":        //4 DEDOS MANO DERECHA
                    for (int i = 0; i < 4; i++)
                    {
                        if (clbDedo.GetItemChecked(i))
                        {
                            switch (i)
                            {
                            case 0:
                                dedoPerdido[3] = 0;
                                break;

                            case 1:
                                dedoPerdido[2] = 0;
                                break;

                            case 2:
                                dedoPerdido[1] = 0;
                                break;

                            case 3:
                                dedoPerdido[0] = 0;
                                break;
                            }
                        }
                        else
                        {
                            switch (i)
                            {
                            case 0:
                                dedoPerdido[3] = 5;
                                break;

                            case 1:
                                dedoPerdido[2] = 4;
                                break;

                            case 2:
                                dedoPerdido[1] = 3;
                                break;

                            case 3:
                                dedoPerdido[0] = 2;
                                break;
                            }
                        }
                    }
                    break;

                default:
                    break;
                }
                #endregion

                #region codigo comentado

                //GENERA BMP DE LAS 4 HUELLAS
                //palma = param[1] + "palma_" + param[0] + ".bmp";
                //RS_SDK.RS_SaveBitmap(imageData, imageWidth, imageHeight, palma);
                //if (m_result != RS_SDK.RS_SUCCESS)
                //{
                //    RS_SDK.RS_GetErrString(m_result, ref m_errorMsg);
                //    MsgPanel.Text = m_errorMsg;
                //}

                #endregion

                //me conecto a la base de datos
                conn = new OracleConnection(Conexion(param[3]));
                conn.Open();

                //ciclo que recorre el arreglo de huellas
                for (int i = 0; i < numOfFingers; i++)
                {
                    //identifico el id del dedo que se le asignara a la huella
                    dedo = 0;
                    while (dedo == 0)
                    {
                        dedo = dedoPerdido[n];
                        n++;
                    }

                    //genero el nombre de los archivos y su ruta
                    bmp = param[1] + param[2] + "_" + dedo + ".bmp";
                    wsq = param[1] + param[2] + "_" + dedo + ".wsq";

                    //genero imagen de la huella
                    result = RS_SDK.RS_SaveBitmap(ImageBuffer[i], ImageWidth[i], ImageHeight[i], bmp);
                    //cargo ewn memoria el archivo de la huella
                    FileStream fs = new FileStream(bmp, FileMode.Open, FileAccess.Read);
                    huella = new byte[fs.Length];
                    fs.Read(huella, 0, System.Convert.ToInt32(fs.Length));
                    fs.Close();

                    #region CODIGO DE PREUEBAS
                    //result = RealScanExtendSDK.RSE_SaveRAW(ImageBuffer[i], ImageWidth[i], ImageHeight[i], "C:\\Temp\\huellas\\huella."+ "_" + dedo +"dat");
                    //creo el template...
                    //template = new byte[ImageWidth[i] * ImageHeight[i]];
                    //Marshal.Copy(ImageBuffer[i], template, 0, ImageWidth[i] * ImageHeight[i]);
                    #endregion


                    //genero el archivo wsq
                    RealScanExtendSDK.RSE_CompressWSQ(bmp, null, 3, wsq);
                    //cargo en memoria el archivo wsq
                    FileStream archivoWSQ = new FileStream(wsq, FileMode.Open, FileAccess.Read);
                    archivoWSQMem = new byte[archivoWSQ.Length];
                    archivoWSQ.Read(archivoWSQMem, 0, System.Convert.ToInt32(archivoWSQ.Length));
                    archivoWSQ.Close();

                    //metodo que graba el registro en la base de datos
                    RegistraHuella(dedo, huella, template, archivoWSQMem);

                    //elimino los archivos del equipo
                    File.Delete(bmp);
                    File.Delete(wsq);
                }

                conn.Close();
                conn.Dispose();
            }
            catch (TargetInvocationException ex)
            {
                MsgPanel.Text = ex.Message;
                throw;
            }
            #endregion
        }