import com.digitalpersona.onetouch.DPFPTemplate;
private DPFPTemplate plantilla;
private void GuardHuella (String cod) { 
  while (true) {   
    try {
     File file = new File("huellas/"+cod);
     if (!file.toString().toLowerCase().endsWith(".fpt"))
      file = new File(file.toString() + ".fpt");
     if (file.exists()) {
      int choice = JOptionPane.showConfirmDialog(this,
       String.format("El Archivo ya Existe ¿Quiere Sustituirlo?", file.toString()),
       "Guardando Huella Digital",
       JOptionPane.YES_NO_CANCEL_OPTION);
      if (choice == JOptionPane.NO_OPTION)
       continue;
      else if (choice == JOptionPane.CANCEL_OPTION)
       break;
     }
     FileOutputStream stream = new FileOutputStream(file);
     stream.write(getTemplate().serialize());
     stream.close();
    } catch (Exception ex) {
     JOptionPane.showMessageDialog(this, ex.getLocalizedMessage(), "Guardando Huella Digital", JOptionPane.ERROR_MESSAGE);
       }
   break;
  }
 }
 public DPFPTemplate getTemplate() {
  return plantilla;
 }
 public void setTemplate(DPFPTemplate template) {
  DPFPTemplate old = this.plantilla;
  this.plantilla = template;
  firePropertyChange(PROPIEDAD_DE_PLANTILLA, old, template);
 }
package panaderia;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.digitalpersona.onetouch.*;
import com.digitalpersona.onetouch.capture.*;
import com.digitalpersona.onetouch.capture.event.*;
import com.digitalpersona.onetouch.processing.*;
public class CaptureForm extends JDialog
{
 private DPFPCapture capturer = DPFPGlobal.getCaptureFactory().createCapture();
 private JLabel jLabel2 = new JLabel();
 private JTextField jtextField1 = new JTextField();
 private JTextArea jTextArea1 = new JTextArea();
 private JTextField status = new JTextField("[status line]");
    public CaptureForm(Frame owner) {
        super (owner, true);
        setTitle("raul CAPTURANDO HUELLA ");
    
  setLayout(new BorderLayout());
  rootPane.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
  jLabel2.setPreferredSize(new Dimension(240, 280));
  jLabel2.setBorder(BorderFactory.createLoweredBevelBorder());
  jtextField1.setFont(UIManager.getFont("Panel.font"));
  jtextField1.setEditable(false);
  jtextField1.setColumns(40);
  jtextField1.setMaximumSize(jtextField1.getPreferredSize());
  jtextField1.setBorder(
    BorderFactory.createCompoundBorder(
     BorderFactory.createTitledBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0), "Escaneo rapido:"),
     BorderFactory.createLoweredBevelBorder()
    ));
  jTextArea1.setColumns(40);
  jTextArea1.setEditable(false);
  jTextArea1.setFont(UIManager.getFont("Panel.font"));
  JScrollPane logpane = new JScrollPane(jTextArea1);
  logpane.setBorder(
    BorderFactory.createCompoundBorder(
     BorderFactory.createTitledBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0), "Status:"),
     BorderFactory.createLoweredBevelBorder()
    ));
  status.setEditable(false);
  status.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
  status.setFont(UIManager.getFont("Panel.font"));
  JButton quit = new JButton("Cerrar ventana");
        quit.setForeground(Color.red);
        quit.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) { setVisible(false); }});
  JPanel right = new JPanel(new BorderLayout());
  right.setBackground(Color.getColor("control"));
  right.add(jtextField1, BorderLayout.PAGE_START);
  right.add(logpane, BorderLayout.CENTER);
  JPanel center = new JPanel(new BorderLayout());
  center.setBackground(Color.white);
  center.add(right, BorderLayout.CENTER);
  center.add(jLabel2, BorderLayout.LINE_START);
  center.add(status, BorderLayout.PAGE_END);
  JPanel bottom = new JPanel(new FlowLayout(FlowLayout.LEFT));
  bottom.setBackground(Color.cyan);
  bottom.add(quit);
  setLayout(new BorderLayout());
  add(center, BorderLayout.CENTER);
  add(bottom, BorderLayout.PAGE_END);
  this.addComponentListener(new ComponentAdapter() {
   @Override public void componentShown(ComponentEvent e) {
    init();
    start();
   }
   @Override public void componentHidden(ComponentEvent e) {
    stop();
            }
  });
  pack();
        setLocationRelativeTo(null);
 }
 protected void init()
 {
  capturer.addDataListener(new DPFPDataAdapter() {
   @Override public void dataAcquired(final DPFPDataEvent e) {
    SwingUtilities.invokeLater(new Runnable() { public void run() {
     makeReport("LA HUELLA HA SIDO CAPTURADA.");
     setPrompt("ESCANEE EL MISMO DEDO OTRA VEZ.");
     process(e.getSample());
    }});
   }
  });
  capturer.addReaderStatusListener(new DPFPReaderStatusAdapter() {
   @Override public void readerConnected(final DPFPReaderStatusEvent e) {
    SwingUtilities.invokeLater(new Runnable() { public void run() {
      makeReport("ok EL HUELLERO ESTA CONECTADO.");
    }});
   }
   @Override public void readerDisconnected(final DPFPReaderStatusEvent e) {
    SwingUtilities.invokeLater(new Runnable() { public void run() {
     makeReport("EL HUELLERO HA SIDO O ESTA DESCONECTADO.");
    }});
   }
  });
  capturer.addSensorListener(new DPFPSensorAdapter() {
   @Override public void fingerTouched(final DPFPSensorEvent e) {
    SwingUtilities.invokeLater(new Runnable() { public void run() {
     makeReport("HA TOCADO.");
    }});
   }
   @Override public void fingerGone(final DPFPSensorEvent e) {
    SwingUtilities.invokeLater(new Runnable() { public void run() {
     makeReport("HA QUITADO EL DEDO.");
                    
    }});
   }
  });
  capturer.addImageQualityListener(new DPFPImageQualityAdapter() {
   @Override public void onImageQuality(final DPFPImageQualityEvent e) {
    SwingUtilities.invokeLater(new Runnable() { public void run() {
     if (e.getFeedback().equals(DPFPCaptureFeedback.CAPTURE_FEEDBACK_GOOD))
      makeReport("La calidad de la huella es excelente.");
     else
      makeReport("La calidad de la huella es mala.");
    }});}});
 }
 protected void process(DPFPSample sample)
 {
  // Draw fingerprint sample image.
  drawPicture(convertSampleToBitmap(sample));
    }
 protected void start()
 {
  capturer.startCapture();
  setPrompt("Usar el huellero para Escanear la Huella");
 }
 protected void stop()
 {
  capturer.stopCapture();
 }
 public void setStatus(String string) {
  status.setText(string);
 }
 public void setPrompt(String string) {
  jtextField1.setText(string);
 }
 public void makeReport(String string) {
  jTextArea1.append(string + "\n ");
 }
 public void drawPicture(Image image) {
  jLabel2.setIcon(new ImageIcon(
   image.getScaledInstance(jLabel2.getWidth(), jLabel2.getHeight(), Image.SCALE_DEFAULT)));
 }
 protected Image convertSampleToBitmap(DPFPSample sample) {
      return DPFPGlobal.getSampleConversionFactory().createImage(sample);
 }
 protected DPFPFeatureSet extractFeatures(DPFPSample sample, DPFPDataPurpose purpose)
 {
  DPFPFeatureExtraction extractor = DPFPGlobal.getFeatureExtractionFactory().createFeatureExtraction();
  try {
   return extractor.createFeatureSet(sample, purpose);
  } catch (DPFPImageQualityException e) {
   return null;
}}}
package panaderia;
import com.digitalpersona.onetouch.*;
import com.digitalpersona.onetouch.processing.*;
import java.awt.*;
import javax.swing.JOptionPane;
public class CargarHuella1 extends CaptureForm
{
 private DPFPEnrollment enroller = DPFPGlobal.getEnrollmentFactory().createEnrollment();
 CargarHuella1(Frame owner) {
  super(owner);
 }
 @Override protected void init()
 {
  super.init();
     this.setTitle("CAPTURANDO HUELLA");
  updateStatus();
 }
 @Override protected void process(DPFPSample sample) {
 super.process(sample);
  // Process the sample and create a feature set for the enrollment purpose.
  DPFPFeatureSet features = extractFeatures(sample, DPFPDataPurpose.DATA_PURPOSE_ENROLLMENT);
  // Check quality of the sample and add to enroller if it's good
  if (features != null) try
  {
   makeReport("The fingerprint feature set was created.");
   enroller.addFeatures(features);  // Add feature set to template.
  }
  catch (DPFPImageQualityException ex) { }
  finally {
   updateStatus();
   // Check if template has been created.
   switch(enroller.getTemplateStatus())
   {
    case TEMPLATE_STATUS_READY: // report success and stop capturing
     stop();
     ((Administrador)getOwner()).setTemplate(enroller.getTemplate());
                    hide();
     setPrompt("Click Close, and then click Fingerprint Verification.");
     break;
    case TEMPLATE_STATUS_FAILED: // report failure and restart capturing
     enroller.clear();
     stop();
     updateStatus();
     ((Administrador)getOwner()).setTemplate(null);
     JOptionPane.showMessageDialog(CargarHuella1.this, "The fingerprint template is not valid. Repeat fingerprint enrollment.", "Fingerprint Enrollment", JOptionPane.ERROR_MESSAGE);
     start();
     break;
   }
  }
 }
 private void updateStatus()
 {
  // Show number of samples needed.
  setStatus(String.format("Fingerprint samples needed: %1$s", enroller.getFeaturesNeeded()));
 }
}
package panaderia;
import com.digitalpersona.onetouch.verification.*;
import java.awt.*;
import java.sql.*;
import java.io.*;
import javax.swing.*;
import com.digitalpersona.onetouch.*;
public class VerificarHuella extends CaptureForm
{
    conexion  c=new conexion();
     Connection conn;
 private DPFPVerification verificator = DPFPGlobal.getVerificationFactory().createVerification();
 VerificarHuella(Frame owner) {
  super(owner);
 }
 @Override protected void init()
 {
  super.init();
  this.setTitle("Escaneo de huella");
  updateStatus(0);
 }
 @Override protected void process(DPFPSample sample) {
   ResultSet resultado=null;
         DPFPTemplate t=null;
         int val,sw=0;
         String cedula;
        super.process(sample);
       try
       {
       resultado=buscar();
       while(resultado.next())
       {
         //  JOptionPane.showMessageDialog(VerificarHuella.this, "entre al while ");
       cedula=resultado.getString("cedula");
       t=onLoad(cedula);
       val=verificar(sample,t);
       if (val==1)
       {
           sw=1;          
           this.hide();
                      Principal1 p=new  Principal1();
            p.setVisible(true);
            this.hide();
            
       break;
      }}
       if(sw==0)
           JOptionPane.showMessageDialog(VerificarHuella.this, "Usted no esta autorizado");
       }
       catch(Exception e)
    {
        JOptionPane.showMessageDialog(null," ERROR: NO SE PUEDE CONECTAR: "+e);
    } 
 }
    public int verificar(DPFPSample sample, DPFPTemplate template)
    {
        DPFPFeatureSet features = extractFeatures(sample, DPFPDataPurpose.DATA_PURPOSE_VERIFICATION);
  // Check quality of the sample and start verification if it's good
  if (features != null)
  {
   // Compare the feature set with our template
   DPFPVerificationResult result =
    verificator.verify(features, template);
   updateStatus(result.getFalseAcceptRate());
   if (result.isVerified())
            {
                makeReport("***VALIDACION HA SIDO CORRECTA****.");
                return 1;
            }
   else
            {makeReport("???? VALIDACION INCORRETA???.");
             return 0;
            }}
        return 0;
    }
    private void updateStatus(int FAR)
 {
  // Show "False accept rate" value
  setStatus(String.format("False Accept Rate (FAR) = %1$s", FAR));
 }
public ResultSet buscar()
{
 ResultSet resultado=null;
    String instruccion;
    try{
    c.Conex("panaderia", "0000");
        instruccion="SELECT CEDULA FROM administradores where huella= 's' ";
        resultado = c.consulta(instruccion);
    }
    catch(Exception e)
    {
    JOptionPane.showMessageDialog(null, "error" + e);
    }
return resultado;
}
private DPFPTemplate onLoad(String cod) {
  /*JFileChooser chooser = new JFileChooser();
  chooser.addChoosableFileFilter(new TemplateFileFilter());
  if(chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION)*/ {
   try {
   // FileInputStream stream = new FileInputStream(chooser.getSelectedFile());
   FileInputStream stream = new FileInputStream("bancodehuellas/"+cod+".fpt");
    byte[] data = new byte[stream.available()];
    stream.read(data);
    stream.close();
    DPFPTemplate t = DPFPGlobal.getTemplateFactory().createTemplate();
    t.deserialize(data);
                return t;
    //setTemplate(t);
   } catch (Exception ex) {
    JOptionPane.showMessageDialog(this,"Error:  "+ex, "Cargando Huella", JOptionPane.ERROR_MESSAGE);
   }
  }
        return null;
 }}
viernes, 12 de febrero de 2010
Suscribirse a:
Enviar comentarios (Atom)
Hola , disculpa de por casualidad tienes el main de ese codigo ? ( que creo que sale parte de el al principio ). Gracias.
ResponderEliminarprohuntersniper@gmail.com