Ir al contenido principal

Programación de un lector de huella digital en Java. Parte 5.

Después de una larga espera seguimos con el tutorial en su quinta parte (si no has leído las partes uno, dos, tres y cuatro te recomiendo que lo hagas antes de continuar). En este caso toca el turno a la identificación de personas por medio de su huella digital. Hasta el momento ya tenemos resueltas las funciones para guardar y verificar así que falta poco para culminar con las funciones básicas.
Recordemos que todos los procedimientos los estamos realizando en la clase procedimientos.Util así que vayamos a dicha clase y creamos un método de nombre identificarPersona() que no recibe argumentos de ningún tipo, en un principo quedará de la siguiente manera:
  /**
    * Identifica a una persona registrada por medio de su huella digital
    */
   public void identificarPersona(){
       
   } 
Ya que tenemos la definición del método debemos de brindarle un comportamiento pero para decirle qué hacer primero debemos entenderlo. Para identificar una persona se necesita tomar una muestra de la huella digital y posteriormente compararla con todas aquellas entre las cuales se encuentra la persona, en este caso, entre todas las huellas registradas, si encontramos un registro que coincida entonces tenemos a la persona que buscamos.
En código se traduce a lo siguiente:
Primero obtenemos todas las huellas de la base de datos...
ResultSet rsIdentificar = identificarStmt.executeQuery();
...posteriormente iteramos a través de todos los resultados...
while(rsIdentificar.next()){
...en cada iteración obtenemos la plantilla de la huella almacenada...
byte templateBuffer[] = rsIdentificar.getBytes("huehuella");
...y la creamos para posteriormente utilizarla...
Template referenceTemplate = new Template(templateBuffer);
...ya que tenemos la plantilla de la base de datos la comparamos con la actual almacenando el resultado de la comparación en una variable...
boolean coinciden = fingerprintSDK.verify(template,referenceTemplate);
...si coinciden hacemos lo pertinente y rompemos el ciclo de iteración y lo cerramos...
if (coinciden){                   
  ui.showImage(GrFingerJava.getBiometricImage(template, fingerprint, fingerprintSDK));                                  
  JOptionPane.showMessageDialog(ui, "La huella es de "+rsIdentificar.getString("huenombre"));
  return;
}

}
...si hemos buscado en todas las huellas y no se encuentra se lo indicamos al usuario...
 JOptionPane.showMessageDialog(ui, "No existe ningún registro que coincida con la huella.");
...y listo!
Al finalizar debemos de encerrar el código entre algunos try-catch para evitar errores al momento de compilar, el método completo queda así:
/**
    * verifica la huella digital actual contra otra en la base de datos
    */
   public void identificarPersona() {
       try {
           //Obtiene todas las huellas de la bd
           ResultSet rsIdentificar = identificarStmt.executeQuery();
           
           //Si se encuentra el nombre en la base de datos
           while(rsIdentificar.next()){
               //Lee la plantilla de la base de datos
               byte templateBuffer[] = rsIdentificar.getBytes("huehuella");
               //Crea una nueva plantilla
               Template referenceTemplate = new Template(templateBuffer);
               
               //compara las plantilas (actual vs bd)
               boolean coinciden = fingerprintSDK.verify(template,referenceTemplate);
               
               //Si encuentra correspondencia dibuja el mapa 
               //e indica el nombre de la persona que coincidió.
               if (coinciden){                   
                   ui.showImage(GrFingerJava.getBiometricImage(template, fingerprint, fingerprintSDK));                                  
                   JOptionPane.showMessageDialog(ui, "La huella es de "+rsIdentificar.getString("huenombre"));
                   return;
               }
               
           } 
           
           //Si no encuentra alguna huella que coincida lo indica con un mensaje
           JOptionPane.showMessageDialog(ui, "No existe ningún registro que coincida con la huella.");
               
       } catch (SQLException e) {
           e.printStackTrace();           
       } catch (GrFingerJavaException e) {
           e.printStackTrace();           
       }
   }
Posteriormente lo único que debemos hacer es mandarlo llamar desde el botón de 'Identificar' y listo! hemos terminado con las 3 funciones principales de un sistema de identificación de huellas digitales, solo necesitas adaptar estos métodos a tu aplicación y tendrás funcionalidad total.
El plan no es terminar con esta serie de tutoriales con este artículo sino ahondar en procedimientos un tanto más especializados como comparaciones realizadas directamente por el servidor (en aplicaciones cliente-servidor) para quitar tráfico a la red por medio de un servidor de aplicaciones, sin embargo, espero sus comentarios y opiniones al respecto, y si tienen alguna consulta dejen su correo para hacerles llegar mi respuesta lo antes posible ya que no he podido contestar los comentarios aquí directamente...

:::Actualización:::
A petición de algunos de ustedes, aquí les dejo una liga para descargar el proyecto en formato comprimido:

Descargar


****Actualización (08/08/2012)****
A petición de todos les dejo la lista de todos los artículos de este tutorial.

Tus comentarios y/o preguntas son bienvenidos.
Si el código te fue útil te invito a que me ayudes a difundirlo desde los botones sociales (Twitter, Facebook, Google+).
De igual manera puedes suscribirte al blog original feed  para que los nuevos artículos lleguen a tu bandeja de correo o lector de Feedsfavorito desde los enlaces del lado derecho de la página.

Comentarios

  1. Estimado Monillo:
    he seguido con mucho interes esta guia, y la agradezco profundamente, pero ruego que, por favor, puedas mandar un archivo zip o algo para probarlo en vivo, porque definitivamente Java es la solucion a nuestro problema, pero sigo sin poder hacer andar el compilador...sirve el jcreator para estos efectos? cualquier guia se agradece...
    Atte,
    un ignorate fan de Java

    ResponderEliminar
  2. Monillo
    Gracias por este tutorial, era lo que estaba buscando, me gusto mucho pq al fin encontre algo con java, estaba ya optando por solucion en .NET, pero te agradeceria si es posible los fuentes en un .zip, por alguna razon, no se que me falta pero no me ejecuta bien en NB.
    Gracias
    Att
    Un Java Fan

    ResponderEliminar
  3. Que tal Monillo..
    He seguido muy de cerca este tutorial y la verdad me saco de apuros. Te felicito por la aportacion a la comunidad de desarrolladores.
    Solo una pregunta, sabes si la libreria de griaule deja de funcionar a los 90 dias ??

    Me gustaria estar en contacto mas de cerca este es mi blog y mail http://omixisc.blogspot.com ofm.isc@gmail.com
    Bytes...

    ResponderEliminar
  4. Saludos monillo!!
    Estoy muy interesado en este tutorial, muy buenopor cierto, al igual que mis compañeros si puedes facilitar un zip, te lo agradeceria mucho estoy inmerso en un proyecto en java de este estilo y me ayudaria mucho tu aportacion, mi correo es s_alcu@hotmail.com Gracias!

    ResponderEliminar
  5. Gracias a todos por sus comentarios, les comento que ya subí el proyecto de NetBeans para que puedan descargarlo, chequen la parte final del artículo para obtener el vínculo.

    Saludox.

    ResponderEliminar
  6. muy buen aporte pero tengo dudas este programa hace la funcion de scanner como hacer para que tembien haga la funcion como lector y cada vez que quiera accesar a una carpeta me pida introducir la huella y que la corrobore no se si e entendido bien lo que hace el programa mi correo es jmorenolopez@hotmail.com

    ResponderEliminar
  7. quisiera saber si tienes este programa de detector de huellas desarrollado en .net si es asi me lo podrias mandar en .zip a jmorenolopez@hotmail.com

    gracias

    ResponderEliminar
  8. George,

    Primero que nada disculpa la tardanza en contestarte, te comento que no tengo el proyecto en .net, de hecho el fin de estos 5 tutoriales es que se aprenda y se entienda la programación como tal, no solamente compartir el proyecto para su descarga. Saludox.

    ResponderEliminar
  9. Hola buen dia

    He seguido tu guia (felicidades esta muy bien)y todo me funciona perfecto desde netbeans, pero cuando armo un jar y lo quiero ejecutar desde linea de comandos me envia un error donde me dice que no puede leer la licencia
    ¿Que puedo hacer para solucionar este error?

    Saludos y desde ya mil gracias por tu ayuda y atención

    ResponderEliminar
  10. Verifíca que las librerías de grfingerjava y mysql estén dentro de la carpeta de la última versión del jre de java (c:/archivos de programa/java/jreX.XX/lib/ext), si te sigue dando el error indícame tal cual lo que aparece en la consola para verificar exactamente de qué se trata.

    Saludox.

    ResponderEliminar
  11. Hola,

    Antes de nada quería felicitarte por la guía, un gran trabajo. En mi caso particular yo necesito algo más sencillo, sólo tengo que conectar el detector de huella digital a mi aplicación de login (realizada en java), para que cuando pase la huella se autentifique en la aplicación, es decir, no necesito mostrar la huella ni nada de eso, sólo que se autentifique, la idea es comprar el DigitalPersona 4000B que es el mismo que has utilizado tú, ¿crees que con la parte del paquete de procedimientos es sufiente?, ¿vés necesario que compre la SDK Gold/Premium que viene con el DigitalPersona?. Muchas gracias de antemano.

    Un Saludo

    Fernando

    ResponderEliminar
  12. Primero que todo gracias por el desarrollo de este proyecto, que ha sido de gran ayuda para nosotros.

    Te sugerimos cosas como:

    1- ¿Como es posible quitar la pantalla de licencia de griaule?, por acá hubo un conocido que lo hizo pero no ha querido colaborarnos con ese apunte.

    2- en nuestro caso el proyecto estamos trabajando la aplicación desde un "Java Desktop Application", ademas no estamos capturando la huella desde el frame principal (que si lo utilizamos como formulario de logeo) y el JFrame en el que estamos capturando la huella se abre despues, sin embargo cuando cerramos este jFrame(en el cual se encuentra implementado todo tu proyecto) y volvemos y le damos iniciar sesion (esto sin cerrar toda la aplicacion) y volvemos a logear y entrar al Jframe aparece un error al inicializar la captura (GrFingerJavaException) y ademas no capturar la huella.

    Esas son los dos únicas huellas digo comentarios que tenemos al respecto del proyecto, por lo demás esta EXCELENTE!!!

    nos gustaría estar en contacto con ustedes, si puedes agregame a tu correo, el mio es:
    umov@hotmail.com.

    gracias.

    ResponderEliminar
  13. BBBIIIIIEEENNNNN muchas gracias llevo un bune rato siguiendo tutoriales y arreglandomelas y al final casi temrino pero me da errores, espero que con el ejemplo pueda completar mi proyecto gracias

    ResponderEliminar
  14. Hola soy Belen te habia dejado un comentario en la parte 1 porque no habia visto la continuación de tu artículo que en verdad es muy bueno, te felicito!!, ok, ya probe el ejemplo y me da este error To run this application from the command line without Ant, try:
    java -jar "C:\Users\princesa\Desktop\lector\EjemploLectorHuellas\EjemploLectorHuellas\dist\EjemploLectorHuellas.jar"
    y por cierto lo voy a intentar para trabajando con servlets luego te digo como me fue te agradezco y de nuevo felicidades

    ResponderEliminar
  15. Saludos amigo, gracias a tu estupendo manual logramos realizar el registro, verificacion e identificacion de huellas con el lector Nigten Hamster II.
    Tengo una duda, lo que pasa es que por ahora estamos trabajando con el SDK gratuito de Griaule, tenemos pensado compralo porque es para uso de una empresa. El problema es que por ahora cada que ejecutamos la aplicacion para el registro de huellas, puede que la aplicacion se ejecute o no. El numero maximo de veces que lo ejecutamos para que funcionara fueron 24 veces,osea que 24 veces la aplicacion no se abrio, aveces la aplicacion se abre a la primera, pero no siempre. Me gustaria saber si al comprar el SDK esto dejara de pasar.
    PD:No hemos probado con tu codigo.
    Gracias por tu ayuda

    ResponderEliminar
  16. Muchas gracias por tu aporte,
    te pondre de referencia. Ahora, mas bien, tengo una consulta. Estoy aplicando un sistema de seguridad remoto y estaba pensando en usar biometria como metodo de acceso. Tu crees q sea posible mediante un concentrador VPN SSL acceder a la VPN y asi poder entrar al aplicativo, previamente teniendo la lectora de huella dactilar??. Te envio mis datos para poder enviarte el grafico de mi propuesta.

    Saludos,

    Jorge G

    ResponderEliminar
  17. Mis datos son: guardiajgd@hotmail.com

    ResponderEliminar
  18. Oye muchisimas gracias por este tutorial, funciona perfectamente con mi scanner Upek
    Lo unico malo es que el Griaule es de paga, debería haber un desarrollo de SDK libre, los que anduve buscando no le llegaron a lo que hace Griaule, pero es muy buena iniciativa.
    Gracias por el articulo, ahora podré sacar adelante mi proyecto.

    ResponderEliminar
  19. me ha dejado fascinado todo este tutorial mi amigo, te felicito. note que lo realicaste en aprox. 2 meses. yo tengo planeado realizar un sistema de control de asistencia, y un bonche de informacion tan detallada y precisa como la de tus blogs me da los animos suficientes para realizarlo. gracias y sigue asi

    saludos

    ResponderEliminar
  20. me puedes pasar el Link para descargar todo el codigo de tu aplicacion. de antemano gracias.
    este es mi correo ck0z@hotmail.com

    ResponderEliminar
  21. HOLA SALUDOS QUISIERA SABER SI ME DUEDES AYUDAR CON LA APLICACION QUE ESTA EN TU BLOG YA LA TERMINE PERO CUANDO LA EJECUTO SALE EL SIGUIENTE ERROR
    Exception in thread "main" java.lang.UnsatisfiedLinkError: no grfingerjava in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1709)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1028)
    at com.griaule.grfingerjava.GrFingerJavaNative.loadLibrary(GrFingerJavaNative.java:46)
    at com.griaule.grfingerjava.GrFingerJavaNative.(GrFingerJavaNative.java:28)
    at com.griaule.grfingerjava.GrFingerJava.setLicenseDirectory(GrFingerJava.java:96)
    at procedimientos.Util.setFingerprintSDKNativeDirectory(Util.java:106)
    at interfaz.PantallaPrincipal.main(PantallaPrincipal.java:238)
    Java Result: 1
    QUISIERA SABER SI ME FALTA ALGUNA LIBRERIA YA REVISE LOS PASOS DE LA PRIMERA PARTE

    ResponderEliminar
  22. Hola que tal! me puedes pasar el Link para descargar todo el codigo de tu aplicacion? te anticipo que no soy programador java, pero lo intento, nada mas que me lo encargaron en mi trabajo y al principio lo hice con visual basic y me funciona muy bien, de hecho lo tengo con MySql, pero el nuevo Jefe lo quiere implementar en Java, de antemano gracias.
    este es mi correo gedworl@gmail.com

    ResponderEliminar
  23. Para los qe no les funciona el enlace por alguna razon es esta.

    http://www.mediafire.com/?5fyytuuidny

    ResponderEliminar
  24. hola, interesante el desarrollo de esta aplicacion, pero me resulta una pregunta y no se si ya te la han hecho, pero como puedo adaptar este tipo de desarrollo a uno que esta ya creado en php y lo que necesito es incorporarle la opcion de lectura de huellas y verificacion en la base de datos??

    agradeceria tu respuesta--

    ResponderEliminar
  25. Qué tal,

    Es posible integrar un módulo de este tipo en una aplicación php por medio de un applet.

    ResponderEliminar
  26. Hola, primero que todo te felicito por este excelente tuto, aun no lo implemento pero lo he leído todo y esta muy claro, además que las imágenes y las secciones de código están muy detalladas, pero te quiero hacer una pregunta, veo que en el método verify(String nom) se hace la consulta a la BD filtrando el registro por el nombre y al obtenerlo se compara el mapa de la huella, con lo cual me imagino que sera muy eficiente la búsqueda, pero mi pregunta recae en el escenario en el cual no se solicite por ejemplo el nombre sino que solo con la huella se realice la búsqueda, como me lo imagino seria realizar una búsqueda de todas las huellas e iterar el resultado y allí realizar una comparación una a una de cada huella de la BD contra la que buscamos, pero esto a simple vista es costoso en tiempo y recursos si pensamos que se tengan muchos usuarios registrados en la tabla ( no se 1000 o mas pensando en grande ), ahora bajo este escenario que te planteo ves una solución que sea mejor que la que pienso yo? es que la verdad aunque esa opción es la mas básica no veo muchas alternativas.

    Te repito muchas gracias.

    ResponderEliminar
  27. Hola,

    he revisado el tutorial y me ha parecido muy bueno, la información es verdaderamente útil. Veo que entre las preguntas que te hicieron está la integración a un programa php, yo trabajo en lenguaje java pero sobre plataformas Web, y tengo precisamente esa idea, como puedo hacer funcionar el lector pero en entorno web?, ya me lo había imaginado con una applet pero me preocupa la idea de que salga un applet muy pesado, y además como superar el tema de permisos para acceder los drivers que se necesitan, me gustaría ponerme en contacto contigo para llevarlo a cabo como proyecto open source.

    ResponderEliminar
  28. hola antes que nada estube le yendo el post y megusto por que voy a realizar un proyecto parecido pero necesito descargar tu proyecto para que le pueda enter mejor a un que lo que tu dices esta muy claro lo que me refiero es verlo como trabaja y no lo puedo descargar de link
    megustaria que lo mandaras a mi correo,
    mi correo es pelon_12luis@hotmail.com por favor lo necesito te lo agradeceria mucho, y eres muy bueno programando felecidades.

    ResponderEliminar
  29. hola ke tal amigo...recien acabo de ver tu blog y me parecio super interesante por la manera en que explicas este ejemplo...de verdad muchas gracias m sirvio un buen...

    aaa y para los ke no han podido descargar el ejemplo comprimido...este es el link

    http://www.mediafire.com/?5fyytuuidny

    ResponderEliminar
  30. aMIGO MUCHISIMAS GRACIAS POR TU APORTE... QUISIERA PEDIRTE UN GRANDE FAAVOR... AL TRATAR DE CORRER EL PROGRAMA ME SALE UN EROR DE UNA DLL pthreadVC2.dll Y NO SE COMO REPARLO... TE AGRADECERIA SI PUDIERAS COLABORARME... DE VERDAD LO NECESITO... MUCHAS GRACIAS

    ResponderEliminar
  31. Hola a todos , quiero agradecer a Monillo007 por esta excelente guía. Esta muy bien explicada y clara de entender.

    Estuve leyendo la parte de Identificar a una persona y en el ejemplo se plantea que hay que traer todas las huellas e ir comprobando una a una para saber saber que persona es. Aparte de esta forma de que otra podemos identificar una persona .. no se algo como un WHERE en la BD ; ya que si los datos en la tabla son muy grandes ( 10.000.0000.000)registros creo que seria un proceso costoso y lento.

    Muchas gracias por sus opiniones sobre esta duda.

    "Para identificar una persona se necesita tomar una muestra de la huella digital y posteriormente compararla con todas aquellas entre las cuales se encuentra la persona, en este caso, entre todas las huellas registradas, si encontramos un registro que coincida entonces tenemos a la persona que buscamos."

    gaso

    ResponderEliminar
  32. ola estoy com un probrema com las importaciones que se ocupan en el programa no me funciona unas importaciones son las siguentes import com.griaule.grfingerjava.FingerprintImage;
    import com.griaule.grfingerjava.GrFingerJava;
    import com.griaule.grfingerjava.GrFingerJavaException;
    import com.griaule.grfingerjava.IFingerEventListener;
    import com.griaule.grfingerjava.IImageEventListener;
    import com.griaule.grfingerjava.IStatusEventListener;
    import com.griaule.grfingerjava.MatchingContext;
    import com.griaule.grfingerjava.Template;

    me dice el netbeans que no existe tal importaciones

    si me pueden ayudar xfa.
    gracia.

    ResponderEliminar
  33. HOLA HE SEGUIDO TU PROYECTO, YO TRABAJO EN GOBIERNO DEL ESTADO DE MÉXICO COMO DESARROLDOR Y HE TRATADO DE HECHAR ANDAR ALGO SIMILAR PERO TENGO UN PROBLEMA PARA COMPARAR LAS HUELLAS ¿PRODRIAS COLGAR EL PROYECTO PARA QUE VEA LA RUTINA DE COMPARACIÓN CON LA BD? YA QUE EN DONDE LA TENIAS YA NO ESTA DISPONOBLE.

    TE MANDO MIS CORREOS
    abo270381@hotmail.com
    gabriel.correa@edomex.gob.mx

    DE ANTEMANO GRACIAS!!!!!!!

    ResponderEliminar
  34. alguien me puede pasar el link de la 4ta parte porque no la encuentro porfavor se los agradeceria mucho y si acaso tienen el archivo de descarga tambien porque no me permite descargalo

    ResponderEliminar
  35. Qué tal,

    Al inicio de este artículo están los links a todas las demás partes.

    Un saludo.

    ResponderEliminar
  36. Hola estimado amigo...

    He probado su proyecto que esta espectacular, pero al momento de compilar para LANZARLO... me da el siguiente ERROR... :

    Exception in thread "main" java.lang.UnsatisfiedLinkError: no grfingerjava in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1709)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1028)
    at com.griaule.grfingerjava.GrFingerJavaNative.loadLibrary(GrFingerJavaNative.java:46)
    at com.griaule.grfingerjava.GrFingerJavaNative.(GrFingerJavaNative.java:28)
    at com.griaule.grfingerjava.GrFingerJava.setLicenseDirectory(GrFingerJava.java:96)
    at procedimientos.Util.setFingerprintSDKNativeDirectory(Util.java:106)
    at interfaz.PantallaPrincipal.main(PantallaPrincipal.java:238)
    Java Result: 1
    QUISIERA SABER SI ME FALTA ALGUNA LIBRERIA YA REVISE LOS PASOS DE LA PRIMERA PARTE y NO LOGRE CONSEGUIR NADA.

    MUCHAS GRACIAS POR TU AYUDA...

    ResponderEliminar
  37. Qué tal,

    Te comento que la excepción es por que el programa no encuentra los archivos dll en el registro del sistema operativo, verifica que dichos archivos (mencionados en la parte 1) se encuentren en la carpeta c:\windows\system32\ en caso de Xp, para otros sistemas operativos habría que verificar la ruta.

    Un saludo.

    ResponderEliminar
  38. Muchas gracias ya lo encontre de casualidad todavia tendras el proyecto comprimdo?

    mi correo es iga_3@hotmail.com

    Saludos!

    ResponderEliminar
  39. Ya lo hize jalar y todo pero no me enciende el lector de huella ¬¬ intente con dos distintos modelos y si me funcionan en el sample del griaule pero en el proyecto nomas no prende =/

    ResponderEliminar
  40. Buenas amigo, muy buen tutorial, actualmente me encuentro buscando alternativas para echar a andar el lector eikon, buscando y buscando me encontre con esta pagina, me he descargado tu proyecto de netbeans pero al generar el jar y ejecutarlo, que el lo primero que debo hacer al iniciar el programa? Lo pregunto porque las lineas verdes a que haces referencia no me aparecen, por otro lado si le doy al boton guardar me da una excepcion nullpointerexception en el boton guardar.

    Agradeceria cualquier ayuda de tu parte, mi mail es magroberth@gmail.com

    ResponderEliminar
  41. Hola muy bueno el tutorial, pero no de deja descargar, depronto un mirror para descargarlo

    gracias

    ResponderEliminar
  42. Hola Monillo:
    Como muchos aqui hemos venido siguiendo los tutoriales, y en lo personal me parece un graqn logro para los que estamos en esta area y de seguro que nos ayudara en gran medida.
    Al correr el codigo que nos dejaste yo tuve unos problemillas, en algunos casos no me corria por eso me dirijo hacia para pedirte que talvez me pudieras enviar el codigo a mi correo eddy_usb2008@hotmail.com.
    De antemano te agradezco por este gran tutorial.
    Atte: Edson.

    ResponderEliminar
  43. Aquí el enlace:

    http://www.mediafire.com/?5fyytuuidny

    Saludox!

    ResponderEliminar
  44. Buenisimo, muy claro y sencillo de explicar... anuque yo creo que su elaboracion tuvo su grado de dificultad.. muy bien! :)

    ResponderEliminar
  45. Hola muchas gracias por el tuto , quisiera saber si hay alguna manera de hacer las pruebas sin necesitadad de tener un dispositio , podria hacerce con el lector que tiene el mismo pc?

    ResponderEliminar
  46. Qué tal,

    Es probable que funcione, revisa la lista de lectores compatibles directamente en www.griaule.com.

    Saludos.

    ResponderEliminar
  47. hola muy bueno tu tutorial pero a mi me da un problema que no eh podido resolver a la hora de identificar

    com.griaule.grfingerjava.GrFingerJavaException: Unknown error
    at com.griaule.grfingerjava.MatchingContext.verify(MatchingContext.java:338)
    at procedimientos.Util.identificarPersona(Util.java:234)
    at interfaz.PantallaPrincipal.btnIdentificarActionPerformed(PantallaPrincipal.java:265)
    at interfaz.PantallaPrincipal.access$400(PantallaPrincipal.java:28)
    at interfaz.PantallaPrincipal$4.actionPerformed(PantallaPrincipal.java:165)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    at java.awt.Component.processMouseEvent(Component.java:6267)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    at java.awt.Component.processEvent(Component.java:6032)
    at java.awt.Container.processEvent(Container.java:2041)
    at java.awt.Component.dispatchEventImpl(Component.java:4630)
    at java.awt.Container.dispatchEventImpl(Container.java:2099)
    at java.awt.Component.dispatchEvent(Component.java:4460)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
    at java.awt.Container.dispatchEventImpl(Container.java:2085)
    at java.awt.Window.dispatchEventImpl(Window.java:2478)
    at java.awt.Component.dispatchEvent(Component.java:4460)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

    ResponderEliminar
  48. Qué tal,

    Qué sistema operativo, versión del SDK y lector tienes?

    Saludos.

    ResponderEliminar
  49. hola el sistema operativo es windows 7, sdk 2009 y lector es digital persona 4000b

    ResponderEliminar
  50. Qué tal Hector,

    Te comento que este tutorial está basado en la versión 2007 del SDK, el 2009 es bastante parecido pero tiene sus diferencias, para verificar el por qué de tu error será necesario (por lo pronto) que te pongas en contacto con el soporte de Griaule directamente o en su defecto que utilices el 2007 con otro lector ya que el que utilizas tiene problemas de compatibilidad.

    Saludos.

    ResponderEliminar
  51. y tambien ya hice la prueba con el sdk 2007. como te digo si me deja guardar y verificar pero a la hora de identificar me da ese error

    ResponderEliminar
  52. Te recomiendo entonces probar con el proyecto que se puede descargar desde el final del artículo para descartar cualquier posibilidad, si corre sin problemas verifica las diferencias entre ambos proyectos.

    Igual pruebas y me dices cómo te fue.

    ResponderEliminar
  53. Hola Luis he tenido inconvenientes para descargar la aplicacion y probarla ya que he tratado el paso a paso y no he podido lograr su buen funcionamiento te agradezco si me puedes colaborar para poder hacer efectiva la descarga.

    ResponderEliminar
  54. Aquí el link:
    http://www.mediafire.com/?5fyytuuidny

    Si aún no puedes descargarlo deja tu correo y te lo mando.

    Saludos.

    ResponderEliminar
  55. Esta parte de Aqui me salen error en tdo caso si tienes la libreriaz podriaz subirlo para descargarlos


    import com.griaule.grfingerjava.FingerprintImage;
    import com.griaule.grfingerjava.GrFingerJava;
    import com.griaule.grfingerjava.GrFingerJavaException;
    import com.griaule.grfingerjava.IFingerEventListener;
    import com.griaule.grfingerjava.IImageEventListener;
    import com.griaule.grfingerjava.IStatusEventListener;
    import com.griaule.grfingerjava.MatchingContext;
    import com.griaule.grfingerjava.Template;

    ResponderEliminar
  56. Qué tal, al final del artículo tienes la liga para la descarga.

    Saludos.

    ResponderEliminar
  57. UNA PREGUNATA... SERA QUE SE PUEDE UTILIZAR CON EL LECTOR DE HUELLA DIGITAL DE MI LAPTOP... ES UNA HP....

    ResponderEliminar
  58. Qué tal,

    Existe un listado de lectores compatibles directamente en la página del fabricante www.griaule.com.

    Saludos.

    ResponderEliminar
  59. muchas gracias por este aporte, en serio y muy bacano el blog

    saludos y sigue asi

    ResponderEliminar
  60. Primero que todo muchas gracias por el tutorial de "Programación de un lector de huella digital en Java" me funciono perfectamente con el lector óptico Microsoft. Ahora lo quise trabajar con un lector de sensor capacitivo, Zvetco P6000 que se encuentra en la lista de lectores compatibles de Griaule, el problema que se me presenta es que cuando coloco por primera vez la huella me la reconoce muy normal, sin embargo al intentar poner otra huella ya sea para realizar cualquier acción no la lee ni la reconoce sólo se queda con la primera imagen que tomó. No se a que se pueda deber este problema pero agradecería cualquier colaboración que me pudieras brindar.

    ResponderEliminar
  61. saludos amigo gracias por el tutorial de "Programación de un lector de huella digital en Java" me funciono perfectamente pero me gustaria que me ayudaras o me orientaras en como cambiar el estilo a la huella que se dibuja en el panel .. colores

    ResponderEliminar
  62. HOLA SE ME HACE UN TANTO COMPLICADO AUNQUE ESTA MUY FACIL LA GUIA NO ME CORRE YA INTENTE DESCARGAR EL FINGERINSTALLER2007 DESDE TUS ENLACES PERO YA TODOS CASI ESTAN FUERA EN SU LUGAR DESCARGUE EL 2009 E HICE TODO DEACUERDO A LA ESTRUCTURAS PERO AL REEDIRECCIONAR LAS LIBRERIA YA NO ME APARECEN CIERTAS CARPETAS COMO LA EXT CREO QUE POR ALLI ES LO QUE ME ESTA CAUSANDO EL PROBLEMA OJALA Y PUEDAS RESUBIR TU PROYECTO COMPLETO PAR QUE TRATAR DE CORRERLO GRACIAS

    ResponderEliminar
  63. Qué tal,

    Para cambiar los colores se debe utilizar el método setBiometricImageColors(), la información de su uso se localiza directamente en el javadoc del SDK de Griaule (usualmente en C:\Program Files\Griaule\Fingerprint SDK Java 2007\doc\javadoc).

    Para descargar el proyecto completo puedes ir a http://830d9902.tinylinks.co. Te recomiendo utilizar el SDK 2007 ya que es el que se utilizó para este tutorial y no se tuvo ningún problema. Puedes descargarlo desde el siguiente enlace:

    http://min.us/mvfrHo#1o

    Saludos.

    ResponderEliminar
  64. Hola, quisiera saber si hay alguna forma de calcular el tiempo que tarda en reconocer la huella desde que se pone el dedo en el sensor. Había pensado en definirlo en el OnFingerDown y/o OnFingerUp pero no estoy segura de como sería.

    Gracias, Johana

    ResponderEliminar
  65. Qué tal Johana,

    He revisado el SDK y al parecer no hay un método que lo calcule tal cual, por lo cual tendrías que hacerlo manualmente mediante Hilos (aquí un artículo al respecto).

    Otra opción sería que en el método verificar iniciaras guardando la hora (con segundos y milisegundos) en que comienza el proceso y al identificar la huella hicieras el cálculo del tiempo que transcurrió entre el inicio y el fin del proceso.

    Espero haberte dado una idea :). Saludos.

    ResponderEliminar
  66. Gracias por la idea estoy mirando como resolverlo porque necesito calcular el tiempo que pasa desde que pongo el dedo en el lector hasta que se ve la imagen en la aplicación con el template y todo. Johana

    ResponderEliminar
  67. Buenas noches, mira quería preguntar como podría volver a cargar una plantilla que tenga en la base de datos a la aplicación porque tengo una base de datos muy grande y no puedo contar con las personas registradas para que vuelvan a poner su huella e identificarlas. Necesito simular que se puso la huella así no sea toda la imagen lo que se muestre. Muchas gracias. Karen

    ResponderEliminar
  68. saludos luis navarro tengo este codigo pero nose como implementarlo me puede ayudar lo saque de aqui
    http://lisbioid.googlecode.com/svn-history/r6/trunk/Biometrico/src/Controlador/Main.java


    // Sets the colors of biometric display
    public void setBiometricDisplayColors(Color minutiaeColor,
    Color minutiaeMatchColor, Color segmentColor,
    Color segmentMatchColor, Color directionColor,
    Color directionMatchColor) {

    try {
    // set new colors for BiometricDisplay
    GrFingerJava.setBiometricImageColors(minutiaeColor,
    minutiaeMatchColor, segmentColor, segmentMatchColor,
    directionColor, directionMatchColor);
    } catch (GrFingerJavaException e) {
    // write error to log
    //ui.writeLog(e.toString());
    }

    }

    ResponderEliminar
  69. Saludos Luis navarro e estado investigando para cambiar el estilo y es sobre grafico pero de eso no se mucho pude modificar esta linea 1 por la linea 2 y me muestra la huella pero en negro me podrias ayudar como asignarle otro colo saludos te agrecedeceria ante mano..
    //Se dibuja la imagen
    1 // g.drawImage(fingerprintImage, transX, transY, width, height, null);


    2 boolean drawImage = g.drawImage(fingerprint, transX, transY, width, height, Color.blue, nombre);

    ResponderEliminar
  70. hola monillo007, como puedo resolver este error, segui los pasos al pie de la letra, utilizo las herramientas que manejaste en el tutorial, pero no entiendo por que sale este error
    com.griaule.grfingerjava.GrFingerJavaException: License not found or read error
    at com.griaule.grfingerjava.MatchingContext.createContext(MatchingContext.java:60)
    at com.griaule.grfingerjava.MatchingContext.(MatchingContext.java:103)
    at procedimientos.Util.inicializarCaptura(Util.java:61)
    at interfaz.PantallaPrincipal.(PantallaPrincipal.java:41)
    at ejemplolectorhuellas.Main.main(Main.java:25)
    Java Result: 1

    ResponderEliminar
  71. Qué tal,

    El error se debe a que no localiza el archivo de licencia que necesita para ejecutarse, verifica que lo indicado en la parte 1 del tutorial se haya realizado completa y correctamente.

    Saludos.

    ResponderEliminar
  72. Hola monillo puedes volver a subir el proyecto en formato comprimido? esque sale borrado!

    ResponderEliminar
  73. buenos aportes eh, estoy probando con los colores... Mi pregunta va si se puede manipular las luces con griaule del hardware, por ejemplo del nitgen hamster ii, y si no como podria manipular para este hardware... espero q alguno me responda... Ah si corre muy bien con el SDK2009, por lo menos no tengo problemas... haber como me ira luego... espero una respuesta gracias...

    ResponderEliminar
  74. Disculpa puedes resubir tu proyecto? El link esta caido. Saludos!!!

    ResponderEliminar
  75. Hola, excelente tuto :).

    Todo muy bien explicado como para no preguntar xD pero aquí voy :P.

    ¿Cómo haría para que la imagen (de la huella) me muestre en otra ventana sin iniciar una nueva instancia de fingerprint?

    Saludos.

    Pd. Todo funciona muy bien.

    ResponderEliminar
  76. Funciona muy bien pero pasa muy seguido que identica una huella que no corresponde, ¿ha alguien más le sucede lo mismo?.

    ResponderEliminar
  77. Hola a tos tengo un lector de Biomini Suprema y el SDK no lo Reconose si alguien me puede ayudar a resulver este pequeño proble se lo agradesco de antemano

    ResponderEliminar
  78. Mi hermano muchas gracias, que Dios te siga dando conocimiento, muy bien explicado y de facil comprension, de verdad gracias.
    Isaac P. B.

    Solo una pregunta busque la liga para descargar el proyecto, pero no lo encontre, porfa me lo podrias pasar, ya sea que me respondas por aca o si me hace el favor de enviarmelo a mi correo, de antemano muchas muchas gracias.
    emails: cibereternet@hotmail.com, techno-cyber@hotmail.com

    ResponderEliminar
  79. Hola Luis, de casualidad sabes como puedo comprar la licencia???, esque me meti a la pagina y vi varios sdk, pero no vi el que es compatible con java, de antemano gracias, saludos.

    ResponderEliminar
  80. Envíame un correo a monillo007@gmail.com para hacerte llegar la información. Saludos.

    ResponderEliminar
  81. gracias Luis, excelente tuto ....yo tengo 10 licencias pero para el sdk de escritorio ("Fingerprint SDK 2007) y aunque hay una carpeta de java en "samples" no me funciona.

    será q estoy haciendo algo mal o es por q tengo que adquirir por separado la el sdk JAVA?

    (por cierto captcha mas complicado)

    ResponderEliminar
  82. Hola que tal mi estimado Luis Navarro me parese mas que excelente tu tutorial ya que nos ayudas a varios con este gran aporte de programacion.
    Te comento que empeze con este proyecto y segui los pasos que has realizado hasta ahorita pero al momento de ejecutarlo me sale el siguiente error:
    ===========================================================
    ========= GRIAULE BIOMETRICS FINGERPRINT SDK 2009 =========
    ========= =========
    ========= TRIAL VERSION =========
    ========= 30-Day Evaluation =========
    ========= =========
    ========= Buy licenses at =========
    ========= www.griaulebiometrics.com =========
    ========= This trial license expired =========
    ========= 125 days ago =========
    ===========================================================
    com.griaule.grfingerjava.GrFingerJavaException: Unknown error
    at com.griaule.grfingerjava.MatchingContext.createContext(MatchingContext.java:95)
    at com.griaule.grfingerjava.MatchingContext.(MatchingContext.java:138)
    at procedimientos.Util.inicializarCaptura(Util.java:34)
    at interfaz.PantallaPrincipal.(PantallaPrincipal.java:32)
    at interfaz.PantallaPrincipal.main(PantallaPrincipal.java:184)
    Java Result: 1
    si me pudieras ayudar te lo agradeseria muchisisismo saludos desde Zacatecas mexico

    ResponderEliminar
  83. Hola.. muchas gracias por tu aporte... solamente que he estado trabajando con el SDK 2009 y existe problemas cuando intento correr el programa y el 2007 que mencionas no lo encuentro por ningun lado... me podrias decir donde descargar el 2007 o mandarmelo porfavor?? raul.lerma3@gmail.com
    Muchas Gracias...

    ResponderEliminar
  84. Por que cuando mando a llamar el frame donde se lee la huella desde otro frame(un menu principal) me manda el error de "com.griaule.grfingerjava.GrFingerJavaException: License not found or read error", pero cuando lo corro directamente me funciona bien.

    ResponderEliminar
  85. amigo me puedes mandar a mi correo el fingerprint sdk java 2007 por favor juanvm7910@hotmail.com o juanvama7910@gmail.com

    ResponderEliminar
  86. saludos amigo me puede pasar un link para descargar el fingerprint sdk java 2007 a mi correo es jamith.m@hotmail.com o ha este mercadojamith@gmail.com

    ResponderEliminar
  87. excelente tutorial 10/10

    ResponderEliminar
  88. Hola me interesa mucho, al final dice que es un formato comprimido, me lo puedes mandar a mi correo libra_gemelo18@live.com.mx es que lo estube checando y no salen algunas imagenes!!

    ResponderEliminar
  89. El archivo ya no esta podrías subirlo nuevamente, gracias

    ResponderEliminar
  90. Si, por favor sube el proyecto nuevamente es que ya no existe, si puedes en mega o por otro servidor, gracias de antemano.

    ResponderEliminar
  91. Que buen tutorial solo que no eh podido compilar me salen errores me gustaria que pusieras nuevamente el link ya que quise bajar el zip pero no me deja, gracias

    ResponderEliminar
  92. hola monillo007 de casualidad podrias subir la base para probar el ejemplo, por que nuestro virdi foh01 no hace nada cuando colocamos el dedo en el lector

    ResponderEliminar
  93. aL FINAL ME SALE ERROR ME PUEDES AYUDAR

    import com.griaule.grfingerjava.FingerprintImage;
    import com.griaule.grfingerjava.GrFingerJava;
    import com.griaule.grfingerjava.GrFingerJavaException;
    import com.griaule.grfingerjava.IFingerEventListener;
    import com.griaule.grfingerjava.IImageEventListener;
    import com.griaule.grfingerjava.IStatusEventListener;
    import com.griaule.grfingerjava.MatchingContext;
    import com.griaule.grfingerjava.Template;

    ResponderEliminar
  94. todas estas librerias pueden ser usadas tambien en eclipse rodrirchz@gmail.com

    ResponderEliminar
  95. Alguien tiene el codigo o el proyecto de netbeans lo corro y no me funciona!! para nada!!! mi correo ronyargueta@yahoo.es

    ResponderEliminar
  96. Porfavor Alguien Puede enviarme el archivo ? el proyecto ? algo en un rar porfavor ? gracias de antemano
    master_guaja@hotmail.com
    porfavor

    ResponderEliminar
  97. Buenas por favor si alguien que dispone del proyecto o los fuentes si podria enviarmelo, a mi email mikelquevedo@gmail.com

    ResponderEliminar
  98. Hola monillo podrías volver a poner el archivo ya que el link esta caído y no se pude descargar. gracias.

    ResponderEliminar

Publicar un comentario

Este es un espacio abierto, puedes escribir lo que gustes respetando los siguientes puntos:

1.- Lo que escribas esté relacionado con el post, si gustas contactarme puedes hacerlo aqui.

2.- Todo es cuestionable, aunque ten en cuenta que existen formas de hacerlo, evita las agresiones y revisa tu lenguaje antes de publicar un comentario.

3.- Siempre hay tres verdades: tu verdad, mi verdad y la verdad, por lo que opiniones diferentes no necesariamente son equivocadas.

4.- Los comentarios son una forma de discusión abierta, por lo que al publicar uno, implícitamente entras a una discusión, con todo lo que esto representa.

5. Me reservo el derecho de eliminar comentarios que no respeten las condiciones mencionadas anteriormente.

Toma en cuenta que puedes utilizar emoticones en tu comentario, para ver una lista de los disponibles da clic en este enlace.

Entradas más populares de este blog

3 sencillos pasos para tramitar la ayuda por desempleo de la AFORE

¿Tienes dinero ahorrado en tu AFORE y en este momento no estás trabajando o estás trabajando pero no tienes seguro social?
Si respondiste sí a la pregunta anterior entonces hay una buena noticia para ti: puedes retirar una parte del dinero que tienes ahorrado. Y lo mejor, es muy sencillo.
En este artículo te diré paso a paso qué hacer para obtener ese dinero, sin tecnicismos legales ni nada por el estilo, simple y sencillamente lo que necesitas saber.
Paso Número 1: Obtener los últimos 2 estados de cuenta de tu Afore
Esto en la mayoría de los casos es sumamente sencillo ya que dichos estados de cuenta llegan directamente al domicilio del ahorrador, si este es tu caso puedes saltar lo restante en este punto y continuar con el paso número 2, en caso contrario sigue leyendo…

Si no tienes tus estados de cuenta debes ponerte en contacto con la empresa encargada de administrar tu ahorro para que te los proporcione, normalmente te van a pedir una identificación oficial, comprobante de domici…

Conectar una base de datos en MySQL con NetBeans

NetBeans es una plataforma para el desarrollo de aplicaciones de escritorio usando Java y a un Entorno integrado de desarrollo (IDE) desarrollado usando la Plataforma NetBeans.

Si eres un programador y desarrollas tus aplicaciones en Java seguramente necesitarás conectar una base de datos tipo MySQL a este entorno algún día, bueno, si lo necesitas ahora, he aquí una explicación paso a paso de cómo conectar ambas herramientas.

4 extraordinarias aplicaciones espía para Android

Le andas haciendo al James Bond y necesitas grabar video, voz o tomar fotos desde tu dispositivo Android sin ser notado? Aquí 4 excelentes aplicaciones que facilitarán tus hazañas de 007 en menos de lo que canta un gallo.

Conexión, consulta y ejecución de sentencias en MySQL con Java

Anteriormente escribí este mismo artículo pero para bases de datos en Oracle. En este artículo prácticamente me copio y pego para explicar paso a paso cómo realizar la conexión a MySQL en Java, así como la forma de realizar consultas a los registros existentes y ejecutar sentencias de inserción, borrado y actualización de datos.Al final del artículo tendremos una clase que encapsulará todos los procedimientos necesarios para trabajar con la base de datos.

c606 c6nf5g4r6 e3 tec3ad6 [Como configurar el teclado]

¿Problemas al escribir con el teclado? ¿Tratas de escribir la letra ‘o’ y sale el número ‘6’ o algo por el estilo? La solución puede ser más simple de lo que parece.

La solución a tu problema tras el salto...