private string CompararDigital(string Digital) { uint ret; bool result; NBioAPI m_NBioAPI = new NBioAPI(); NBioAPI.Type.HFIR hCapturedFIR = new NBioAPI.Type.HFIR(); NBioAPI.Type.FIR_TEXTENCODE m_textFIR = new NBioAPI.Type.FIR_TEXTENCODE(); NBioAPI.Type.FIR_PAYLOAD myPayload = new NBioAPI.Type.FIR_PAYLOAD(); m_textFIR.TextFIR = Digital.ToString(); m_NBioAPI.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO); m_NBioAPI.Capture(out hCapturedFIR); ret = m_NBioAPI.VerifyMatch(hCapturedFIR, m_textFIR, out result, myPayload); if (result == true) { return("OK"); } else { return(""); } }
internal NitgenBiometriaTask(Guid id, NBioAPI mecanismoBusca, NBioAPI.Export conversor, IList <Biometria> biometrias) { Id = id; MecanismoBusca = mecanismoBusca; Conversor = conversor; Biometrias = biometrias; }
public SdkNitgen() { _api = new NBioAPI(); _apiConversor = new NBioAPI.Export(_api); _apiBusca = new NBioAPI.IndexSearch(_api); _apiBusca.InitEngine(); }
public static NitgenBiometriaTask Novo(IList <Biometria> biometrias) { var nitgenMainApi = new NBioAPI(); var conversor = new NBioAPI.Export(nitgenMainApi); return(new NitgenBiometriaTask(Guid.NewGuid(), nitgenMainApi, conversor, biometrias)); }
static void Main(string[] args) { try { var corConsoleDefault = Console.ForegroundColor; var repositorio = new DigitaisRepositorio(); var handler = new IdentificarBiometriaHandler(); var numeroTotalBiometrias = repositorio.RecuperarNumeroTotalBiometrias(); var biometriasPorPagina = (numeroTotalBiometrias / Environment.ProcessorCount) + 10; for (int pagina = 1; pagina <= Environment.ProcessorCount; pagina++) { var biometriasRecuperadas = repositorio.RecuperarPagina(pagina, biometriasPorPagina); handler.AdicionarMecanismoBuscaPara(biometriasRecuperadas); } // Captura da digital (trocar para o que vem da catraca posteriormente) var nitgenMainApi = new NBioAPI(); var possoSair = false; while (!possoSair) { Console.WriteLine("Informe a digital"); NBioAPI.Type.HFIR template; var window = new NBioAPI.Type.WINDOW_OPTION(); nitgenMainApi.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO); nitgenMainApi.Capture(out template, 0, window); nitgenMainApi.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO); var relogio = new Stopwatch(); relogio.Start(); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Identificando....."); Console.ForegroundColor = corConsoleDefault; var resultado = handler.IdentificarBiometria(template); relogio.Stop(); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"Id digital encontrada {resultado} em {relogio.Elapsed.TotalSeconds} segundos"); Console.ForegroundColor = corConsoleDefault; Console.WriteLine(); Console.WriteLine("\nCapturar nova digital?"); var tecla = Console.ReadKey(); if (tecla.Key == ConsoleKey.N) { possoSair = true; } } } catch (Exception ex) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"ERRO {ex.Message} - {ex.StackTrace}"); throw; } }
private DigitalTask Create(NBioAPI.Type.HFIR template, IEnumerable <Biometria> biometrias) { var nitgenMainApi = new NBioAPI(); var nitgenSearchApi = new NBioAPI.IndexSearch(nitgenMainApi); nitgenSearchApi.InitEngine(); var nitgenConvertApi = new NBioAPI.Export(nitgenMainApi); var contextoIdentificacao = BiometriaIndentificacaoContexto.Novo(nitgenSearchApi, nitgenConvertApi); contextoIdentificacao.TemplateLido = template; var cancellationToken = new CancellationTokenSource(); var token = cancellationToken.Token; foreach (var biometria in biometrias) { NBioAPI.Type.HFIR handle; NBioAPI.IndexSearch.FP_INFO[] nitgenBiometria; nitgenConvertApi.FDxToNBioBSPEx(biometria.TemplateISO, (uint)biometria.TemplateISO.Length, NBioAPI.Type.MINCONV_DATA_TYPE.MINCONV_TYPE_ISO, NBioAPI.Type.FIR_PURPOSE.ENROLL_FOR_IDENTIFICATION_ONLY, out handle); nitgenSearchApi.AddFIR(handle, (uint)biometria.Id, out nitgenBiometria); } var task = new Task <int>((parametroState) => { var contexto = parametroState as BiometriaIndentificacaoContexto; Console.WriteLine($"{contexto.Id} - Iniciado "); if (token.IsCancellationRequested) { token.ThrowIfCancellationRequested(); } // Faz o Index Search var cbInfo = new NBioAPI.IndexSearch.CALLBACK_INFO_0(); NBioAPI.IndexSearch.FP_INFO nitgenBiometria; var relogio = new Stopwatch(); Console.WriteLine($"{contexto.Id} - Localizando biometria..."); relogio.Start(); var retorno = nitgenSearchApi.IdentifyData(contexto.TemplateLido, NBioAPI.Type.FIR_SECURITY_LEVEL.HIGH, out nitgenBiometria, cbInfo); relogio.Stop(); Console.WriteLine($"{contexto.Id} - Localizado {nitgenBiometria.ID} em {relogio.Elapsed.TotalSeconds}"); if (token.IsCancellationRequested) { token.ThrowIfCancellationRequested(); } Console.WriteLine($"{contexto.Id} - Finalizado "); return((int)nitgenBiometria.ID); }, contextoIdentificacao, token); return(new DigitalTask(contextoIdentificacao.Id, task, cancellationToken)); }
public ContextoParaIndentificacaoBiometrica(Guid id, NBioAPI mecanismoBusca, NBioAPI.IndexSearch mecanismoConfirmacao, NBioAPI.Export conversor, NBioAPI.Type.HFIR templateLido, IEnumerable <Biometria> biometrias) { Id = id; MecanismoBusca = mecanismoBusca; TemplateLido = templateLido; Biometrias = biometrias; MecanismoConfirmacao = mecanismoConfirmacao; Conversor = conversor; }
public IdentificarBiometriaHandler() { _repositorio = new DigitaisRepositorio(); _mecanismosBusca = new List <NitgenBiometriaTask>(); var nitgenMainApi = new NBioAPI(); _mecanismoConfirmacao = new NBioAPI.IndexSearch(nitgenMainApi); _mecanismoConfirmacao.InitEngine(); _dataUltimaBusca = DateTime.Now; }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { filldrop(); } m_NBioAPI = new NBioAPI(); m_IndexSearch = new NBioAPI.IndexSearch(m_NBioAPI); //con.Open(); table_creater(); }
private dynamic buscar(dynamic dados) { JObject objJson; //string url = "http://localhost:3200/api/biometrico"; //var json = new WebClient().DownloadString(url); // dynamic m = JsonConvert.DeserializeObject( dados ); uint ret; bool result; NBioAPI m_NBioAPI = new NBioAPI(); NBioAPI.Type.HFIR hCapturedFIR = new NBioAPI.Type.HFIR(); NBioAPI.Type.FIR_TEXTENCODE m_textFIR = new NBioAPI.Type.FIR_TEXTENCODE(); NBioAPI.Type.FIR_PAYLOAD myPayload = new NBioAPI.Type.FIR_PAYLOAD(); //m_textFIR.TextFIR = Digital.ToString(); m_NBioAPI.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO); m_NBioAPI.Capture(out hCapturedFIR); dynamic retorno = "-"; int idx = -1; int idxEncontrou = -1; foreach (dynamic obj in dados) { idx++; m_textFIR.TextFIR = obj.digital; ret = m_NBioAPI.VerifyMatch(hCapturedFIR, m_textFIR, out result, myPayload); if (result == true) { idxEncontrou = idx; break; } } if (idxEncontrou > -1) { string str1 = "{status: true, msg: 'Digital encontrada', indice: " + idxEncontrou + "}"; objJson = JObject.Parse(str1); return(objJson); } string str = "{status: false, msg: 'Digital não encontrada'}"; objJson = JObject.Parse(str); return(objJson); //return m; }
private void buttonAdv1_Click(object sender, EventArgs e) { LeitorBiometrico leitor = new LeitorBiometrico(); NBioAPI.Type.HFIR teste = leitor.Capturar(); NBioAPI.Type.FIR_TEXTENCODE teste2; NBioAPI m_NBioAPI = new NBioAPI(); m_NBioAPI.GetTextFIRFromHandle(teste, out teste2, true); string teste3 = teste2.TextFIR; MessageBox.Show(teste3); }
public Form1() { InitializeComponent(); m_NBioAPI = new NBioAPI(); m_Export = new NBioAPI.Export(m_NBioAPI); NBioAPI.Type.VERSION ver; m_NBioAPI.GetVersion(out ver); this.Text = "NExportRawToISO Test[eNBioBS SDK Ver: " + ver.Major + "." + ver.Minor + "]"; }
private static void CarregarBiometriasParaNitgen(NBioAPI nitgenMainApi, NBioAPI.IndexSearch nitgenSearchApi, IEnumerable <Biometria> biometrias) { foreach (var biometria in biometrias) { var biometriaNitgen = new NBioAPI.Type.FIR_TEXTENCODE { TextFIR = biometria.TemplateISOText }; NBioAPI.IndexSearch.FP_INFO[] informacaoBiometria; nitgenSearchApi.AddFIR(biometriaNitgen, (uint)biometria.Id, out informacaoBiometria); } }
public string Identificar(string Digital) { NBioAPI m_NBioAPI = new NBioAPI(); NBioAPI.Type.FIR_TEXTENCODE m_textFIR = new NBioAPI.Type.FIR_TEXTENCODE(); //NBioAPI.Type.HFIR NewFIR; NBioAPI.IndexSearch m_IndexSearch = new NBioAPI.IndexSearch(m_NBioAPI); NBioAPI.Type.HFIR hCapturedFIR; NBioAPI.IndexSearch.FP_INFO[] fpInfo; NBioAPI.Type.WINDOW_OPTION m_WinOption = new NBioAPI.Type.WINDOW_OPTION(); m_WinOption.WindowStyle = (uint)NBioAPI.Type.WINDOW_STYLE.NO_WELCOME; uint ID = 1; m_textFIR.TextFIR = Digital; m_IndexSearch.AddFIR(m_textFIR, ID, out fpInfo); uint dataCount; m_IndexSearch.GetDataCount(out dataCount); m_NBioAPI.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO); uint ret = m_NBioAPI.Capture(out hCapturedFIR); if (ret != NBioAPI.Error.NONE) { //DisplayErrorMsg(ret); m_NBioAPI.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO); m_NBioAPI.GetTextFIRFromHandle(hCapturedFIR, out m_textFIR, true); } m_NBioAPI.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO); NBioAPI.IndexSearch.FP_INFO fpInfo2; NBioAPI.IndexSearch.CALLBACK_INFO_0 cbInfo0 = new NBioAPI.IndexSearch.CALLBACK_INFO_0(); cbInfo0.CallBackFunction = new NBioAPI.IndexSearch.INDEXSEARCH_CALLBACK(myCallback); // Identify FIR to IndexSearch DB ret = m_IndexSearch.IdentifyData(hCapturedFIR, NBioAPI.Type.FIR_SECURITY_LEVEL.NORMAL, out fpInfo2, cbInfo0); if (ret != NBioAPI.Error.NONE) { //DisplayErrorMsg(ret); //return fpInfo2.ID.ToString(); return(m_textFIR.TextFIR); } return(""); }
public static NitgenBiometriaTask Novo(IEnumerable <Biometria> biometrias) { var nitgenMainApi = new NBioAPI(); var nitgenSearchApi = new NBioAPI.IndexSearch(nitgenMainApi); var retorno = nitgenSearchApi.InitEngine(); if (retorno != NBioAPI.Error.NONE) { throw new Exception($"Erro inicializando mecanismo de busca. Erro: {retorno} - {NBioAPI.Error.GetErrorDescription(retorno)}"); } CarregarBiometriasParaNitgen(nitgenMainApi, nitgenSearchApi, biometrias); return(new NitgenBiometriaTask(Guid.NewGuid(), nitgenSearchApi)); }
public Form1() { // // Required for Windows Form Designer support // InitializeComponent(); // // TODO: Add any constructor code after InitializeComponent call // // Create NBioBSP object m_NBioAPI = new NBioAPI(); m_IndexSearch = new NBioAPI.IndexSearch(m_NBioAPI); }
public Form1() { InitializeComponent(); this.bt_converter.Enabled = false; this.pathfilename.Enabled = false; this.button1.Enabled = false; this.txt_textencode.Enabled = false; this.button2.Enabled = false; //inveção de dependências nBioAPI = new NBioAPI(); m_Export = new NBioAPI.Export(nBioAPI); }
public Task <int> CriarTaskParaIdentificacaoBiometrica(NBioAPI.Type.HFIR template, IEnumerable <Biometria> biometrias) { var contextoIdentificacao = new ContextoParaIndentificacaoBiometrica(Id, biometrias, template); CancellationSource = new CancellationTokenSource(); var token = CancellationSource.Token; return(new Task <int>((parametroState) => { try { var contexto = parametroState as ContextoParaIndentificacaoBiometrica; if (token.IsCancellationRequested) { return 0; } var nitgenMainApi = new NBioAPI(); var nitgenSearchApi = new NBioAPI.IndexSearch(nitgenMainApi); nitgenSearchApi.InitEngine(); foreach (var biometria in contexto.Biometrias) { var biometriaNitgen = new NBioAPI.Type.FIR_TEXTENCODE { TextFIR = biometria.TemplateISOText }; NBioAPI.IndexSearch.FP_INFO[] informacaoBiometria; nitgenSearchApi.AddFIR(biometriaNitgen, (uint)biometria.Id, out informacaoBiometria); } var cbInfo = new NBioAPI.IndexSearch.CALLBACK_INFO_0(); cbInfo.CallBackFunction = new NBioAPI.IndexSearch.INDEXSEARCH_CALLBACK(Callback); NBioAPI.IndexSearch.FP_INFO nitgenBiometria; var relogio = new Stopwatch(); relogio.Start(); var retorno = nitgenSearchApi.IdentifyData(contexto.TemplateLido, NBioAPI.Type.FIR_SECURITY_LEVEL.HIGH, out nitgenBiometria, cbInfo); relogio.Stop(); Console.WriteLine($"{contexto.Id} - Localizado {nitgenBiometria.ID} em {relogio.Elapsed.TotalSeconds}"); return (int)nitgenBiometria.ID; } catch (Exception ex) { Console.WriteLine(ex.Message); return 0; } }, contextoIdentificacao, token)); }
public interfaceBiometria() { //Inicializa leitor e ja pega uma conexão com o banco m_NBioAPI = new NBioAPI(); m_OpenedDeviceID = NBioAPI.Type.DEVICE_ID.NONE; m_IndexSearch = new NBioAPI.IndexSearch(m_NBioAPI); defineDispositivo(); //Inicia o sistema de busca de digitais cadastradas. m_IndexSearch.InitEngine(); //Inicializa o módulo para captura da Digital //Inicializa a variável da opção da janela, e define a janela de captura como invisivel m_WinOption = new NBioAPI.Type.WINDOW_OPTION(); m_WinOption.WindowStyle = NBioAPI.Type.WINDOW_STYLE.INVISIBLE; }
public CadastraDigitalForm() { InitializeComponent(); //Inicializa leitor e ja pega uma conexão com o banco m_NBioAPI = new NBioAPI(); m_OpenedDeviceID = NBioAPI.Type.DEVICE_ID.NONE; m_IndexSearch = new NBioAPI.IndexSearch(m_NBioAPI); SqlConnection conn = new ConnectionFactory().getConnection(); //Inicializa o módulo para captura da Digital defineDispositivo(); fechaDispositivo(); abreDispositivo(); cadastraDigital(); }
public string Capturar() { NBioAPI m_NBioAPI = new NBioAPI(); NBioAPI.Type.HFIR hCapturedFIR = new NBioAPI.Type.HFIR(); NBioAPI.Type.FIR_TEXTENCODE texto = new NBioAPI.Type.FIR_TEXTENCODE(); // Get FIR data m_NBioAPI.OpenDevice(255); m_NBioAPI.Capture(out hCapturedFIR); m_NBioAPI.GetTextFIRFromHandle(hCapturedFIR, out texto, true); return(texto.TextFIR); }
public Form1() { InitializeComponent(); //inicializa variáveis Necessárias para NBIOBSP. m_NBioAPI = new NBioAPI(); m_WinOption = new NBioAPI.Type.WINDOW_OPTION(); m_Export = new NBioAPI.Export(m_NBioAPI); utils = new Utils(m_NBioAPI); if (string.IsNullOrWhiteSpace(richTextBox1.Text)) { richTextBox1.Text = "insira o Template aqui"; } }
static void Main(string[] args) { var repositorio = new DigitaisRepositorio(); var nitgenMainApi = new NBioAPI(); var handler = new IdentificarBiometriaHandler(); var corConsoleDefault = Console.ForegroundColor; var biometrias = repositorio.RecuperarPagina(1, 8000); Console.WriteLine($"{biometrias.Count()} biometrias recuperadas..."); handler.CarregarBiometrias(biometrias); var possoSair = false; while (!possoSair) { Console.WriteLine("Informe a digital"); NBioAPI.Type.HFIR template; var window = new NBioAPI.Type.WINDOW_OPTION(); nitgenMainApi.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO); nitgenMainApi.Capture(out template, 0, window); nitgenMainApi.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO); var relogio = new Stopwatch(); relogio.Start(); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Identificando....."); Console.ForegroundColor = corConsoleDefault; var resultado = handler.IdentificarBiometria(template); relogio.Stop(); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"Id digital encontrada {resultado} em {relogio.Elapsed.TotalSeconds} segundos"); Console.ForegroundColor = corConsoleDefault; Console.WriteLine(); Console.WriteLine("\nCapturar nova digital?"); var tecla = Console.ReadKey(); if (tecla.Key == ConsoleKey.N) { possoSair = true; } } }
private uint ConvertISO4ToISO2(byte[] ISOBuf, out NBioAPI.Export.EXPORT_DATA exportData) { NBioBSPISO4.NIMPORTRAWSET ImportRawSet; string szTemp; listRet.Items.Add("ISO 19794-2 data creation start..."); exportData = new NBioAPI.Export.EXPORT_DATA(); uint nRet = NBioBSPISO4.ImportISOToRaw(ISOBuf, out ImportRawSet); if (nRet == NBioAPI.Error.NONE) { NBioAPI.Type.HFIR hProcessedFIR; nRet = MakeFIRFromRawSet(ImportRawSet, out hProcessedFIR); if (nRet == NBioAPI.Error.NONE) { // Make ISO 19794-2 Data nRet = m_Export.NBioBSPToFDx(hProcessedFIR, out exportData, NBioAPI.Type.MINCONV_DATA_TYPE.MINCONV_TYPE_ISO); if (nRet != NBioAPI.Error.NONE) { szTemp = "NBioBSPToFDx Error: " + nRet; listRet.Items.Add(szTemp); } hProcessedFIR.Dispose(); } } else { szTemp = "ImportISOToRaw Error: " + nRet; listRet.Items.Add(szTemp); } return nRet; }
public string Enroll(int id) { NBioAPI m_NBioAPI = new NBioAPI(); NBioAPI.Type.FIR_TEXTENCODE m_textFIR; NBioAPI.Type.HFIR NewFIR; NBioAPI.IndexSearch m_IndexSearch = new NBioAPI.IndexSearch(m_NBioAPI); NBioAPI.Type.WINDOW_OPTION m_WinOption = new NBioAPI.Type.WINDOW_OPTION(); m_WinOption.WindowStyle = (uint)NBioAPI.Type.WINDOW_STYLE.NO_WELCOME; string Retorno = ""; m_NBioAPI.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO); uint ret = m_NBioAPI.Enroll(out NewFIR, null); //uint ret = m_NBioAPI.Enroll(null, out NewFIR, null, NBioAPI.Type.TIMEOUT.DEFAULT, null, m_WinOption); if (ret != NBioAPI.Error.NONE) { m_NBioAPI.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO); } if (NewFIR != null) { m_NBioAPI.GetTextFIRFromHandle(NewFIR, out m_textFIR, true); if (m_textFIR.TextFIR != null) { m_NBioAPI.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO); Retorno = m_textFIR.TextFIR.ToString(); } } return(Retorno); }
public Byte[] Capturar(int id) { NBioAPI m_NBioAPI = new NBioAPI(); NBioAPI.Type.INIT_INFO_0 initInfo0; uint ret = m_NBioAPI.GetInitInfo(out initInfo0); Console.WriteLine("passeiaqui"); if (ret == NBioAPI.Error.NONE) { initInfo0.EnrollImageQuality = Convert.ToUInt32(50); initInfo0.VerifyImageQuality = Convert.ToUInt32(30); initInfo0.DefaultTimeout = Convert.ToUInt32(10000); initInfo0.SecurityLevel = (int)NBioAPI.Type.FIR_SECURITY_LEVEL.NORMAL - 1; } NBioAPI.IndexSearch m_IndexSearch = new NBioAPI.IndexSearch(m_NBioAPI); NBioAPI.Type.HFIR hCapturedFIR; NBioAPI.Type.HFIR AuditData = new NBioAPI.Type.HFIR(); NBioAPI.Type.FIR_TEXTENCODE texto; // Get FIR data m_NBioAPI.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO); m_NBioAPI.Capture(NBioAPI.Type.FIR_PURPOSE.DENTIFY, out hCapturedFIR, -1, AuditData, null); //Console.WriteLine(Encoding.Default.GetString(getfingerImage(AuditData))); try { if (hCapturedFIR != null) { return(getfingerImage(AuditData)); } return(null); } catch (Exception ex) { throw new Exception("ERRO:... " + ex.Message); } }
public Byte[] getfingerImage(NBioAPI.Type.HFIR Fir_toImage) { NBioAPI m_NBioAPI = new NBioAPI(); NBioAPI.Export.EXPORT_AUDIT_DATA exportData; NBioAPI.Export m_Export = new NBioAPI.Export(m_NBioAPI); m_Export.NBioBSPToImage(Fir_toImage, out exportData); Bitmap bmp; int nWidth = (int)exportData.ImageWidth; int nHeight = (int)exportData.ImageHeight; { // bmp image save... bmp = new Bitmap(nWidth, nHeight, PixelFormat.Format8bppIndexed); BitmapData data = bmp.LockBits(new Rectangle(0, 0, nWidth, nHeight), ImageLockMode.WriteOnly, PixelFormat.Format8bppIndexed); System.Runtime.InteropServices.Marshal.Copy(exportData.AuditData[0].Image[0].Data, 0, data.Scan0, nWidth * nHeight); bmp.UnlockBits(data); ColorPalette GrayscalePalette = bmp.Palette; for (int i = 0; i < 256; i++) { GrayscalePalette.Entries[i] = Color.FromArgb(i, i, i); } bmp.Palette = GrayscalePalette; // bmp.Save("RollImage.bmp"); } //Image img = bmp; MemoryStream stream = new MemoryStream(); bmp.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp); Byte[] bytes = stream.ToArray(); return(bytes); }
public string Capturar(int id) { NBioAPI m_NBioAPI = new NBioAPI(); NBioAPI.Type.INIT_INFO_0 initInfo0; uint ret = m_NBioAPI.GetInitInfo(out initInfo0); if (ret == NBioAPI.Error.NONE) { initInfo0.EnrollImageQuality = Convert.ToUInt32(50); initInfo0.VerifyImageQuality = Convert.ToUInt32(30); initInfo0.DefaultTimeout = Convert.ToUInt32(10000); initInfo0.SecurityLevel = (int)NBioAPI.Type.FIR_SECURITY_LEVEL.NORMAL - 1; } NBioAPI.IndexSearch m_IndexSearch = new NBioAPI.IndexSearch(m_NBioAPI); NBioAPI.Type.HFIR hCapturedFIR; NBioAPI.Type.FIR_TEXTENCODE texto; // Get FIR data m_NBioAPI.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO); m_NBioAPI.Capture(out hCapturedFIR); try { if (hCapturedFIR != null) { m_NBioAPI.GetTextFIRFromHandle(hCapturedFIR, out texto, true); return(texto.TextFIR); } return(null); } catch (Exception ex) { throw new Exception("ERRO:... " + ex.Message); } }
private uint MakeFIRFromRawSet(NBioBSPISO4.NIMPORTRAWSET RawSet, out NBioAPI.Type.HFIR hProcessedFIR) { hProcessedFIR = null; if (RawSet.nDataCount < 1) return NBioAPI.Error.FUNCTION_FAIL; uint nRet; int i, j, k; ushort nWidth = RawSet.ImportRawData[0].nImgWidth; ushort nHeight = RawSet.ImportRawData[0].nImgHeight; const int FINGER_ID_MAX = 11; byte[] arSampleCnt = new byte[FINGER_ID_MAX]; byte nSampleCnt = 0; string szTemp; listRet.Items.Add("NITGEN FIR creation start..."); for (i = 0; i < FINGER_ID_MAX; i++) arSampleCnt[i] = 0; // Image size check for (i = 0; i < RawSet.nDataCount; i++) { if (nWidth != RawSet.ImportRawData[i].nImgWidth || nHeight != RawSet.ImportRawData[i].nImgHeight) return NBioAPI.Error.FUNCTION_FAIL; arSampleCnt[RawSet.ImportRawData[i].nFingerID]++; } // Sample per finger check for (i = 0; i < FINGER_ID_MAX; i++) { if (nSampleCnt == 0) nSampleCnt = arSampleCnt[i]; else { if (arSampleCnt[i] != 0 && nSampleCnt != arSampleCnt[i]) return NBioAPI.Error.FUNCTION_FAIL; } } if (nSampleCnt < 1 || nSampleCnt > 2) return NBioAPI.Error.FUNCTION_FAIL; // Make NBioAPI_EXPORT_AUDIT_DATA NBioAPI.Export.EXPORT_AUDIT_DATA exportAuditData; exportAuditData = new NBioAPI.Export.EXPORT_AUDIT_DATA(); exportAuditData.FingerNum = (byte)(RawSet.nDataCount / nSampleCnt); exportAuditData.SamplesPerFinger = nSampleCnt; exportAuditData.ImageWidth = nWidth; exportAuditData.ImageHeight = nHeight; exportAuditData.AuditData = new NBioAPI.Export.AUDIT_DATA[exportAuditData.FingerNum]; for (i = 0; i < exportAuditData.FingerNum; i++) { exportAuditData.AuditData[i].Image = new NBioAPI.Export.IMAGE_DATA[exportAuditData.SamplesPerFinger]; for (j = 0; j < FINGER_ID_MAX; j++) { if (arSampleCnt[j] != 0) { exportAuditData.AuditData[i].FingerID = (byte)j; arSampleCnt[j] = 0; break; } } for (j = 0, k = 0; j < RawSet.nDataCount; j++) { if (exportAuditData.AuditData[i].FingerID == RawSet.ImportRawData[j].nFingerID) { exportAuditData.AuditData[i].Image[k].Data = new byte[RawSet.ImportRawData[j].RawData.Length]; exportAuditData.AuditData[i].Image[k++].Data = RawSet.ImportRawData[j].RawData; } } } // Make Image handle NBioAPI.Type.HFIR hAuditFIR; nRet = m_Export.ImageToNBioBSP(exportAuditData, out hAuditFIR); if (nRet == NBioAPI.Error.NONE) { // Make FIR handle nRet = m_NBioAPI.Process(hAuditFIR, out hProcessedFIR); if (nRet != NBioAPI.Error.NONE) { szTemp = "Process Error: " + nRet; listRet.Items.Add(szTemp); } hAuditFIR.Dispose(); } else { szTemp = "ImageToNBioBSP Error: " + nRet; listRet.Items.Add(szTemp); } return nRet; }
//injeção de dependência public Utils(NBioAPI m_NBioAPI) { this.m_NBioAPI = m_NBioAPI; m_Export = new NBioAPI.Export(m_NBioAPI); }
private void button1_Click(object sender, EventArgs e) { try { var contextosIdentificacao = new List <BiometriaIndentificacaoContexto>(); _tasks = new ConcurrentBag <DigitalTask>(); // Captura da digital (trocar para o que vem da catraca posteriormente) var nitgenMainApi = new NBioAPI(); NBioAPI.Type.HFIR template; var window = new NBioAPI.Type.WINDOW_OPTION(); nitgenMainApi.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO); nitgenMainApi.Capture(out template, 0, window); nitgenMainApi.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO); var repositorio = new DigitalRepositorio(); var digitaisIniciais = repositorio.RecuperarPrimeirosRegistros(); var digitaisFinais = repositorio.RecuperarUltimosRegistros(); var task1 = Create(template, digitaisIniciais); var task2 = Create(template, digitaisFinais); _tasks.Add(task1); _tasks.Add(task2); task1.Task.Start(); Thread.Sleep(500); task2.Task.Start(); var relogio = new Stopwatch(); relogio.Start(); var possoSair = false; DigitalTask resultado; while (!possoSair) { if (_tasks.Any(t => t.Task.IsCompleted)) { var completadas = _tasks.Where(t => t.Task.IsCompleted); resultado = completadas.FirstOrDefault(c => c.Task.Result > 0); if (resultado != null) { foreach (var task in _tasks.Where(t => t.Id != resultado.Id)) { task.CancellationSource.Cancel(); } possoSair = true; } } if (_tasks.All(t => t.Task.IsCompleted)) { possoSair = true; } Thread.Sleep(10); } relogio.Stop(); MessageBox.Show($"Terminou em {relogio.Elapsed.TotalSeconds}"); } catch (OperationCanceledException ex) { foreach (var task in _tasks) { task.CancellationSource.Dispose(); } } }
private void btnCadastrar_Click(object sender, EventArgs e) { userC = new UserController(); user = new User(); if (txtUsuario.Text == "") { MessageBox.Show("Favor, preencher o campo de usuário", "Projeto Biometria", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtUsuario.Focus(); } else if (txtNome.Text == "") { MessageBox.Show("Favor, preencher o campo de nome", "Projeto Biometria", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtNome.Focus(); } else if (txtEmail.Text == "") { MessageBox.Show("Favor, preencher o campo de email", "Projeto Biometria", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtEmail.Focus(); } else if (txtSenha.Text == "") { MessageBox.Show("Favor, preencher o campo de senha", "Projeto Biometria", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtSenha.Focus(); } else { NBioAPI.Type.FIR heFIR = new NBioAPI.Type.FIR(); m_NBioAPI = new NBioAPI(); NBioAPI.Type.HFIR NewFIR; uint reta = m_NBioAPI.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO); // m_NBioAPI.Enroll(out NewFIR, null); uint ret = m_NBioAPI.Capture(NBioAPI.Type.FIR_PURPOSE.VERIFY, out NewFIR, NBioAPI.Type.TIMEOUT.DEFAULT, null, null); if (ret == NBioAPI.Error.NONE) { if (NewFIR != null) { m_NBioAPI.GetFIRFromHandle(NewFIR, out m_biFIR); user.NomeCompleto = txtNome.Text; user.Usuario = txtUsuario.Text; user.Senha = txtSenha.Text; user.Email = txtEmail.Text; user.NivelAcesso = 3; user.Digital = m_biFIR.Data; user.Imagem = m_biFIR.Data; user.Format = Convert.ToInt32(m_biFIR.Format.ToString()); user.DataLength = Convert.ToInt32(m_biFIR.Header.DataLength.ToString()); user.DataType = Convert.ToInt32(m_biFIR.Header.DataType.ToString()); user.Purpose = Convert.ToInt32(m_biFIR.Header.Purpose.ToString()); user.Length = Convert.ToInt32(m_biFIR.Header.Length.ToString()); user.Quality = Convert.ToInt32(m_biFIR.Header.Quality.ToString()); user.Reserved = Convert.ToInt32(m_biFIR.Header.Reserved.ToString()); user.Version = Convert.ToInt32(m_biFIR.Header.Version.ToString()); userC.insertUser(user); MessageBox.Show("Usuário Administrador cadastrado com sucesso!", "Projeto Biometria", MessageBoxButtons.OK, MessageBoxIcon.Information); frmLogin login = new frmLogin(); this.Hide(); this.ShowIcon = false; this.ShowInTaskbar = false; login.ShowDialog(); Application.Exit(); } } else { MessageBox.Show("Erro ao cadastrar digital, tente novamente!", "Projeto Biometria", MessageBoxButtons.OK, MessageBoxIcon.Error); } m_NBioAPI.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO); } }