Los requisitos son los mismos, o casi los mismos
Que necesitamos:
1. Crea un proyecto en Netbeans y añade las siguientes clases: una clase interfaz video.java y una clas jmfVideo.java
las que estan tachadas son solo imagenes para la interfaz, no son necesarias, no te olvides de añadir la libreria Java Media Framework al proyecto.
2. Para la clase interfaz video.java, se deben añadir los siguientes objetos:
Recuerda crear los objetos con los nombres que estan en la imagen
3. El codigo de la clase jmfVideo.java es:
import java.util.logging.Level; import java.util.logging.Logger; import javax.media.*; import javax.media.cdm.CaptureDeviceManager; import java.io.*; import java.awt.*; import javax.media.control.FrameGrabbingControl; import javax.media.format.VideoFormat; import javax.media.util.BufferToImage; import javax.swing.JLabel; import javax.swing.JOptionPane; /** * @web http://jc-mouse.blogspot.com/ * @author Mouse */ public class jmfVideo { //Controlador universal de windows private String dispositivo = "vfw:Microsoft WDM Image Capture (Win32):0"; private Player player = null; public Component Componente(){ Component componente_video; try { // Se obtiene el dispositivo CaptureDeviceInfo device = CaptureDeviceManager.getDevice(dispositivo); //se obtiene la fuente de datos de captura MediaLocator localizador = device.getLocator(); //El localizador es del tipo "vfw://0" video para windows //se crea el PLAYER y se ejecuta player = Manager.createRealizedPlayer(localizador); player.start(); } catch (IOException ex) { Logger.getLogger(jmfVideo.class.getName()).log(Level.SEVERE, null, ex); } catch (NoPlayerException ex) { Logger.getLogger(jmfVideo.class.getName()).log(Level.SEVERE, null, ex); } catch (CannotRealizeException ex) { Logger.getLogger(jmfVideo.class.getName()).log(Level.SEVERE, null, ex); } //Si se pudo crear el PLAYER, se obtiene el componente de video if ((componente_video = player.getVisualComponent()) != null) { //se da un tamaño al componente componente_video.setSize(320, 240); return componente_video; } else { JOptionPane.showMessageDialog(null,"No se pudo crear el video..."); return null; } } //Metodo para capturar la imagen de la webcam Image img = null; public void capturarImagen(){ FrameGrabbingControl ControlFG = (FrameGrabbingControl) player.getControl("javax.media.control.FrameGrabbingControl"); Buffer buffer = ControlFG.grabFrame(); // creamos la imagen awt BufferToImage imagen = new BufferToImage((VideoFormat)buffer.getFormat()); img = imagen.createImage(buffer); } public Image getImagen(){ return img; } public void setImage(JLabel lb){ capturarImagen(); lb.setIcon( new javax.swing.ImageIcon( img ) ); System.out.println("ancho= " + img.getWidth(null)); System.out.println("alto= " + img.getHeight(null)); } }
Esto se debe colocar en el constructor, no es cuestion de copiar y pegar, analiza el codigo
jmfVideo b = new jmfVideo(); /** Creates new form video */ public video() { initComponents(); this.setTitle("Captura de Imagen desde WebCam - by Mouse"); //formulario al centro de la pantalla this.setLocationRelativeTo(null); //se coloca un layout tipo CAJA VIDEO.setLayout(new javax.swing.BoxLayout(VIDEO, javax.swing.BoxLayout.LINE_AXIS)); //se añade el componente de video VIDEO.add(b.Componente()); imagen.setText(""); }
El codigo para los botones es:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { b.capturarImagen(); jcSlide1.setImagen(new ImageIcon(b.getImagen())); } private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { if( jcSlide1.getImagen() != null ){ imagen.setIcon( jcSlide1.getImagen() ); }else{ JOptionPane.showMessageDialog(this,"Por favor. Debe seleccionar una imagen..."); } }
Si todo salio bien, solo es cuestion ejecutar el proyecto
En este post veremos un ejemplo sencillo de encriptación/desencriptación simétrica que el API de Java nos permite realiz[...]
Si bien se pueden encontrar en google estilos java (Look and Feel) listos para cambiar la apariencia de nuestras aplicac[...]
Cuando se desarrolla una aplicación, puede ser un requisito que este tenga soporte para varias tipos de base de datos, s[...]
Un JTable es un componente swing de java que nos permite presentar datos en forma tabular, si bien haciendo uso de IDe[...]
La Ordenación de burbuja (Bubble Sort en inglés) es un sencillo algoritmo de ordenamiento. Este algoritmo es esencialmen[...]
Espresso es un framework de testing propiedad de Google que está dirigido a desarrolladores que creen que las pruebas au[...]