package javaforce.utils; /** Tests Camera function (to be deleted) * * @author pquiring * * Created : Jun 9, 2014 */ import java.util.*; import javaforce.*; import javaforce.media.*; public class TestCamera extends javax.swing.JFrame { /** * Creates new form Test2 */ public TestCamera() { initComponents(); } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { jButton1 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); preview = new javax.swing.JLabel(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle("Camera Test"); jButton1.setText("Start"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); jButton2.setText("Stop"); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(preview, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(layout.createSequentialGroup() .addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, 123, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 125, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jButton2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, 98, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(preview, javax.swing.GroupLayout.DEFAULT_SIZE, 176, Short.MAX_VALUE) .addContainerGap()) ); pack(); }// </editor-fold>//GEN-END:initComponents private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed camera = new Camera(); if (camera == null) { JFLog.log("cam == null"); return; } if (!camera.init()) { JFLog.log("init failed"); return; } String devices[] = camera.listDevices(); if (devices == null || devices.length == 0) { JFLog.log("no devices found"); return; } JFLog.log("device count=" + devices.length); for (int a = 0; a < devices.length; a++) { JFLog.log("device=" + devices[a]); } camera.start(0, 320, 200); width = camera.getWidth(); height = camera.getHeight(); timer = new Timer(); timer.scheduleAtFixedRate(new TimerTask() { public void run() { java.awt.EventQueue.invokeLater(new Runnable() {public void run() { int px[] = camera.getFrame(); if (px == null) return; //not ready if (img == null) { img = new JFImage(width, height); } System.arraycopy(px, 0, img.getBuffer(), 0, width * height); /* cnt++; if (cnt > 5) { img.savePNG("test" + cnt + ".png"); }*/ preview.setIcon(img); preview.repaint(); }}); } }, 500, 500); }//GEN-LAST:event_jButton1ActionPerformed int cnt = 0; private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed if (camera == null) { return; } timer.cancel(); timer = null; camera.stop(); camera = null; }//GEN-LAST:event_jButton2ActionPerformed /** * @param args the command line arguments */ public static void main(String args[]) { /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new TestCamera().setVisible(true); } }); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JLabel preview; // End of variables declaration//GEN-END:variables private Camera camera; private Timer timer; private int frame; private JFImage img; private int width, height; }