ARCmop Java Programacion Solaris Linux

Java-linux-programacion

JMF, Usando Camara desde Java y guardando imagen en Archivo o BD

Posted by Cmop en junio 16, 2010

JMF webcam java foto camara

JMF webcam java foto camara

Hola a todos, después del post de https://cmop17.wordpress.com/2010/01/14/jmf-usando-la-webcam-desde-java-y-guardando-una-imagen/ me sugirieron algunas cosas tales como Redimensionar adecuadamente la webcam, guardar la imagen en un BD, además del fichero, permitir cambiar la resolución de la cámara, en aquel post me basé en otro al cual hago referencia, por lo que traté de mantener el código como de donde lo había sacado.

Ahora he realizado el mismo proyecto pero basándome en mi aprendizaje -después de leer algunos foros y tutoriales-  he mejorado la manera de hacerlo y sus capacidades con respecto al anterior, tratando de hacer el código más entendible y fácil de leer,para que pueda servir de punto de partida a quienes lo deseen.

Bueno ya me dio sueño, así que seré breve, lo he desarrollado en Netbeans 6.8 usando Java 1.6U20 y JMF 2.1.1e.

Coloco los enlaces:

  • Ejecutable de la Aplicación (No olviden que deben reemplazar el archivo jmf.properties por el suyo, que se encuentra en la carpeta de “lib” de su carpeta de instalación de JMF –> Aplicacion
  • Código Fuente del Proyecto en Netbeans 6.8 –> Codigo Fuente

Por ahora estoy estudiando eso de la detección de movimiento, veré si puedo poner algo de ello. por ahora buenas noches a todos.

Saludos.

62 comentarios to “JMF, Usando Camara desde Java y guardando imagen en Archivo o BD”

  1. […] Este es el enlace […]

  2. Icaro101 said

    Hey! esta muy interesante eso de guardar imágenes, pero tengo una duda, digamos que tengo una secuencia de imágenes, y un vídeo es imágenes consecutivas, como puedo agarrar este array y así crear un video desde Java… el JMF me funcionaria para eso?¿¿?

    Saludos y éxitos.

    • Cmop said

      Pues si, JMF te permite guardar video incluso directamente, manejando Streams.
      saludos.

      • Icaro101 said

        El detalle es que no quiero hacer toma de la cam sino de el escritorio mediante robot.createScreenCapture(); y de ello hacer un vídeo😛 , se debe poder, si estamos sacando un frame con su codigo, pues debe haber una forma de pegar todos los frames y pues pasarlo a vídeo😛, Otra pregunta para poder correr el programa tengo que tener necesariamente jmf-2_1_1e-windows-i586.exe instalado¡??¡ y en linux de 64bits no funciona verdad (creo que lo lei en uno de tus post)

  3. roger said

    yo tengo una duda y es que no se como crear y configurar un Processor, el Player solo me muestra el video pero si quiero guardar el video o transmitirlo con RTP, necesito un Processor, pero no se como crearlo y configurarlo. Si puedes colocar un ejemplo te lo agradeceria.

    • Cmop said

      Hola, la creacion es basicamente la misma, pero su logica varia un poco, debido a que presenta mas estados que un player. Mira voy a hacer algo mejor que colgar un ejemplo del player, voy a pasarte el material recopilado del que dispongo y con el cual me he basado para avanzar.
      Este es el enlace: aqui
      Espero ayudarte y pronto poner un ejemplo de Proccesor aunque como podras darte cuenta en el material que te adjunto que es parecido al Player.
      saludos.

      • roger said

        he probado casi de todo, en tus tutoriales creo un processor con un precessorModel, ya que es la forma mas facil, y todo sale bien pero al momento de agregar el componente visual del processor al panel dice que es null, y sale una exepcion. En mi proyecto uso un Processor por que quiero guardar un video con lo que se esta mostrando con la camara. Y tambien transmitirlo.

        Si me puedes ayudar, no se por que cuando agrego el componente visual del processor sale la exepcion diciendo que es null.

        • Cmop said

          Hola el problema que tienes es que el codigo se ejecuta muy rapido. En el momento en el que creas el Processor, inmediatamente intentas usar el Proccesor sin que este este listo, es por ello que te dice “null”.
          Algunos recomiendan Hacer un Thread.sleep(XXXX) para dormir la aplicacion, otros hacen métodos synchronizados, y otros Usan Eventos.
          Mira este ejemplo, el código que está alli funciona sin problemas, aunque la persona que lo postea dice que algunas veces retorna null, esto confirma la espera, pues si te das cuenta existe un wait(2000), en ese vínculo esta la respuesta a lo que me preguntas.
          Saludos

          • roger said

            el ejemplo es claro, pero en ese ejemplo usan al processor como un player, con la sentencia p.setContentDescriptor(null); Y asi si funciona pero de ese modo no puede guardar el video que grabo con la camara, aqui te muestro el codigo.

            Format formatos[]=new Format[2]; formatos[0]=new AudioFormat(AudioFormat.IMA4); formatos[1]=new VideoFormat(VideoFormat.CINEPAK); FileTypeDescriptor tipo=new FileTypeDescriptor(FileTypeDescriptor.QUICKTIME); ProcessorModel modelo=new ProcessorModel(formatos,tipo);
            try { p=Manager.createRealizedProcessor(modelo);
            } catch (NoProcessorException e) { e.printStackTrace();
            } catch (CannotRealizeException e) { e.printStackTrace();
            } catch (IOException e) { e.printStackTrace();
            }
            DataSource entrada=p.getDataOutput(); MediaLocator destino=new MediaLocator(“file://”+file.getAbsolutePath());
            DataSink salida=null;
            try {
            salida=Manager.createDataSink(entrada, destino); salida.open();
            } catch (NoDataSinkException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace();
            } catch (IOException e) { e.printStackTrace();
            }
            try {
            salida.start();
            } catch (IOException e) { e.printStackTrace();
            }
            try { Thread.sleep(2000);
            } catch (InterruptedException e) { e.printStackTrace();
            }
            p.start(); panelPrincipal.add(p.getVisualComponent(),BorderLayout.CENTER); panelPrincipal.updateUI();
            }

            El error sale al momento de agregar el componente visual al panelPrincipal. La excepcion es nullPointerException.

            Si me puedes ayudar a encontrar el problema o si sabes otra forma de hacer un Processor te lo agradeceria.

            • Cmop said

              Hola creo que has llegado al mismo problema que llegué yo, te lo comento:
              Cuando quieres usar JMF a mi parecer solo puedes hacer una cosa al mismo tiempo: (Puedes Grabar) ó (mostrar) ó (Transmitir), yo esto lo he deducido a raíz de experiencias como la tuya (espero que esta deducción sea incorrecta) debido a que no he podido mezclar las tareas, y si te das cuenta por ejemplo JMFStudio, realiza Una Tarea a la Vez, y cuando transmite no muestra lo que transmite. Basándome en ello y en lo múltiples ejemplos donde se hace monotarea,

              • christian said

                cmop cordial saludo

                descargue tu ejecutable y no muestra la webcam
                en el post anterior lo use y funciona cuando lo ejecuto desde netbeans
                pero cuando trato de ejecutarlo desde el jar no puedo ver la cam
                en el otro post te deje un msj espero me puedas ayudar

            • Cmop said

              Hola el problema que me comentas es un problema con el que me he encontrado, te comento lo que pienso:
              Al parecer en JMF solo puedes hacer una tarea con el dispositivo, esto es, puedes: (Grabar) ó (Presentar) ó (Transmitir), pero no al mismo instante, esto es lo que se denomina Patron Singleton (espero que mi deducción sea errada), esta deducción la baso en que: JMFStudio cuando trasmites no puedes ver lo que transmites, además los ejemplos de Sun, siempre hacen una sola tarea.
              Pero la documentación de Sun “jmf2-0 Guide” no dice nada a respecto, por eso decidí buscar otras alternativas como LTI o FMJ, aunque esa es otra historia.
              Retomaré los intentos de hacer el guardado y mostrarlo en pantalla al mismo, y si lo logras antes que yo, agradecería que me lo hicieras saber.
              Saludos.

              • Roger said

                hey cmop, ya cambiando de tema de jmf, tengo una pregunta para ti, estoy trabajando con sockets y en intranet me funciona perfectamente pero a la hora de colocar una ip de internet, o sea, de un pc que no es de mi red, no me sale, sale una excepcion, no se que pueda ser.

                Si me puedes ayudar te lo agradeceria.

  4. Carlos said

    muy interesante ahora lo podeis hacer con camaras ip

  5. Carlos said

    solo recibir imagenes de la camara ip en una pagina JSF

  6. Andresd said

    Buenas Amigo probe esto y me fuciono , te felicito , ahora necesito hacer esto mismo pero en un sitio web , osea q el cliente se conecta a una pagina y desde esa pagina ve lo pasa en su camara , puedo contratar tus servicios? pues te quedo muy bien hecho esto

  7. rledder said

    Nesesito ayuda la verdad soy nuevo en esto y a lo mejor piensen que mi pregunta es tonta, pero baje el JMF en forma de .EXE lo instalale y me genero 3 aplicaciones , JMF customizer , JMStudio, y JMF registry; para empezar corro primero el registry y luego el studio y no me detecta mi camara, solo me detecta el sonido del microfono, mi laptop es VPCCW15FL sony Vaio.

    pero lo que realmente me preocupa es que al momento de abrir el NETBEANS donde estoy revisando una aplicacion me sale el siguiente error ” PACKAGE JAVAX.MEDIA.CAPTUREDEVICEINFO DOEST NOT EXIST” estoy haciendo una aplicacion para capturar imagenes desde la web, tal y como esta la tuya jeje pero SE LOS SUPLICO AYUDENME A CORREGIR ESTO, E PENSADO QUE NO E REFERENCIADO LAS LIBRERIAS AL NETBEANS , PERO EL PROBLEMA ES QUE NO SE COMO HACERLO AYUDENME PORFAVOR DIGANME COMO AGREGAR LAS LIBRERIAS O EL API “JMF” A MI NETBEANS

    agradesco de verdad su ayuda

  8. rledder said

    jeje disculpen YA CORREGI MI PROBLEMA YA LE AGREGUE LA LIBRERIA Y SI CORRE BIEN AHORA ME SALE OTRO ERROR , NO ENCUENTRA MI CAMARA WEB ES LO UNICO🙂 ESPERO SU AYUDA , POR CIERTO FELICIDADES ES EL MEJOR POST QUE HAY🙂 RECOMENDARE MUCHO TU SITIO SALUDOS !!

    • David said

      Hola , pues te comento que necesito hacer lo mismo q tu , la aplicacion de esta pagina funciona pero es una aplicacion de escirtorio, necesitamos esto mismo pero en un applet para q funcione via web , tienes un correo para acordar algo???

    • cristhiams said

      disculpa si podes comentar yo lo descarge y tambien me sale tu error yo todavia no epodido resolverlo me podrias ayudar o alguien mas que me pueda ayudar a este correo porfavor cristh.dg@hotmail.com

      de antemano gracias

  9. the master said

    hola: solo quiero darte las gracias por compartir el conocimiento que tienes en verdad es muy util, algo que resalto es que no te andas con rodeos para mostrar tu codigo que es realmente el ejemplo que la mayoria buscamos asi que muchas gracias lo modifica para un proyecto

  10. the master said

    perdon queria decir que lo modificare para un proyecto que tengo en mente (pero no copiar y pegar)grax…. espero sigas con estos aportes tan productivos.

  11. Jovani del Boque said

    Hola Amigo tu aporte esta muy bien FELICIDADES!!!!!
    oye podrias ayudarme a capturar video con java un .avi por ejemplo de antemano muchas gracias….
    y gracias por los aportes sirven de muchooo,, sigue asi!!!!

  12. Santiago Arias said

    Muuuuuuuuuuuuuuyyyyyyyyyyyy buena info!!!! Me sirvió muchísimo lo del primer post,ahora voy a ver ésta nueva versión mejorada para introducir cambios a la primera que ya la modifiqué bastante por mi lado. Te hago una consulta, ¿cómo haría para meterle gráficos al player? tipo números en cuenta regresiva hasta la captura y/o un pantallazo blanco simulando un flash al momento de realizar la captura.

    Muchas gracias ídolo..

  13. Francisco Godino said

    Hola…
    La verdad que excelente artículo.
    Tengo una duda con respecto a aplicar esto desde Camaras IP.
    NO entendí las respuestas por lo consulto cómo se puede aplicar esto a cámaras IP.
    Muchas gracias.

    Francisco

  14. Hola amigo, quisiera saber si sabrias como hacer para hacer esto mismo con scanner’s y si habria forma de ejecutar el software del scanner o el mismo software de captura de windows y que la aplicacion en java lo reciba.. tipo word cuando uno le dice agregar imagenes desde scanner o camara! Te agradeceria tu respuesta.. GRacias de AnteMano!

  15. Claudia Zammarrelli said

    Hoollaa!! muy interesnate tu aport, pero tengo un problema😦 necesito que reconozca dos camara web que tengo conectadas, como son de la misma marca el solo está viendo una que hago?? gracias

  16. jorge ayala pineda said

    amigoo me sirvio mucho tu codigo excelnte te felicito`. peor tengo un super duda por favor ayudame a solucionarla,, mira instale todos los paquetes y pos en el jmf no me detecta mi camara web, y pos si no me la detecta este umm en tu aplicacion tampoco me detecta mi camara,q debo hacer porfavor ayudamee t lo agradezco!!

  17. Pablo said

    Hola! Muy buen trabajo. Quería proponerte otro reto (visto que gustan). Podrías conseguirlo usando rtp para detectar una webcam remota?
    Seguro que a muchos nos serviría de ayuda como ya lo ha hecho este ejemplo.
    Muchas gracias!! Y a seguir así!

  18. Jorge said

    hola César. tu aplicación me funcionó muy bien, mil gracias por ella. ahora lo q necesitaría es poder editar la imagen dentro de la aplicación (en tiempo de ejecusión). ello es para poder evitar el: 1) capturar la imagen, 2) grabarla en el disco duro, 3) abrirla con paint y, por ej, quedarme solo con la cara .. como si fuera un foto carnet. dime .. me puedes dar una mano con esto. lo que quiero es una referencia o el código para poder hacerlo. gracias… Jorge

  19. ag said

    muy interesante el turtorial
    TEngo u problema ejecuto el programa y no aparece en los dipositivos las camaras a que se debe o que debo hacer para solucionar esto

  20. Jose Martinez said

    COMO HAGO PARA ACTIVAR 2 CAMARAS A LA VEZ?

  21. Giovanni said

    Tengo el mismo problema de Ag, cuando ejecuto la aplicación funciona perfectamente, pero cuando ejecuto el código fuente NO detecta los dispositivos, es decir, al darle clic sobre dispositivos no aparecen opciones.

    Muchas gracias y disculpa las molestias.

  22. Bueno jovenes para los que no les detecta los dispositivos ya encontre la solucion en el Disco C:\\ busque la carpeta JMF2.1.1e/lib y creen una carpeta en su escritorio copien todas las librerias para que no haya problema y se van al netbeans y click derecho sobre libreria en la opcion agregar carpeta o jar seleccionan la opcion y buscan en donde crearon su carpeta y guardaran las librerias entonces ya no deberia a ver ningun problema a detectara todos los dispositvos conectados a su maquina saludos cualquier duda trinisoft.blogspot.com

  23. Hola:

    Tengo una consulta. Cuando tengo dos dispositivos y hago el arranque me aparece una ventana que pregunta cuál es la cámara a inicializar. No hay forma de indicarle la cámara de alguna forma sin que aparezca esta pantalla?
    Gracias

  24. Algun codigo para linux?

  25. rez3t said

    Hola Amigos .. aca tengo una duda .. veo la imagen en mi aplicacion y todo bien .. el problema es como ago para uardarlo .. trate de acer esto . pero solo llege hasta aqui !! …

    try{

    Image img=null;
    FrameGrabbingControl fgc = (FrameGrabbingControl)
    player.getControl(“javax.media.control.FrameGrabbingControl”);
    Buffer buf = fgc.grabFrame();
    // creamos la imagen awt
    BufferToImage btoi = new BufferToImage((VideoFormat)buf.getFormat());
    img = btoi.createImage(buf);

    if (img != null)
    {

    ByteArrayOutputStream out = new ByteArrayOutputStream();
    ImageIO.write((RenderedImage) img, “JPEG”, out);
    InputStream in = new ByteArrayInputStream(out.toByteArray());

    // ——————————————————————————————————————————-
    // AQUI COMO AGO PARA CONVERTIR LA IMAGEN A BYTE :.. PARA GUARDARLO EN BD SQL
    // ——————————————————————————————————————————-

    }catch(Exception ex){}

  26. Jose said

    Hola, actualmente tengo un equipo dell XPS con un Windows Home Premium 64bits, y he intentado con varios programas, algunos me devuelven errores, el tuyo en especifico no me da ninguno, pero tampoco logro ver la camara, y si presiono el menu dispositivos, este se queda trabado y nunca pasa nada, he probado con la camara de la portatil, con una genius look 300 y con una logitech c160 la cual posee incompatibilidad con w7, pero no logro hacer que la camara se vea, alguna idea?

    • Cmop said

      Hola, el programa solo te mostrará los dispositivos que haya detectado JMF, como dije mas arriba si la camara es una camara USB (al parecerJMF no reconoce estas cámaras, recomiendo LTI-CIVIL), ahora si tu camara si ha sido detectada, debes copiar en el path de la aplicacion el archivo jmf.properties generado al momento de instalar el JMF, el se encuentra en (C: o D: o E: )\(CARPETA_INSTALACION)\lib.
      saludos

  27. Hola que tal!
    Estoy programando una aplicacion para transmision de voz usando RTP de JMF. Sin embargo, no puedo transmitir la voz en 2 ordenadores distintos. Podrian ayudarme?

    Les dejo los codigos, que implementandolos en la misma maquina, si funcionan:

    import java.io.IOException;
    import java.net.MalformedURLException;

    import javax.media.Manager;
    import javax.media.MediaLocator;
    import javax.media.NoPlayerException;
    import javax.media.Player;

    public class SimpleVoiceReciver{

    /**
    * @param args
    */
    public static void main(String[] args) {
    String url= “rtp://192.168.1.105:22224/audio/16”;

    MediaLocator mrl= new MediaLocator(url);

    if (mrl == null) {
    System.err.println(“Can’t build MRL for RTP”);
    System.exit(-1);
    }

    // Create a player for this rtp session
    Player player = null;
    try {
    player = Manager.createPlayer(mrl);
    } catch (NoPlayerException e) {
    System.err.println(“Error:” + e);
    System.exit(-1);
    } catch (MalformedURLException e) {
    System.err.println(“Error:” + e);
    System.exit(-1);
    } catch (IOException e) {
    System.err.println(“Error:” + e);
    System.exit(-1);
    }

    if (player != null) {
    System.out.println(“Player created.”);
    player.realize();
    // wait for realizing
    while (player.getState() != Player.Realized){
    try {
    Thread.sleep(10);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    player.start();
    } else {
    System.err.println(“Player doesn’t created.”);
    System.exit(-1);
    }
    }

    }

    Y he aqui el transmisor:

    // this class send sound
    import java.io.IOException;
    import java.util.Vector;

    import javax.media.CaptureDeviceInfo;
    import javax.media.CaptureDeviceManager;
    import javax.media.DataSink;
    import javax.media.Manager;
    import javax.media.MediaLocator;
    import javax.media.NoPlayerException;
    import javax.media.NoProcessorException;
    import javax.media.NotRealizedError;
    import javax.media.Player;
    import javax.media.Processor;
    import javax.media.control.FormatControl;
    import javax.media.control.TrackControl;
    import javax.media.format.AudioFormat;
    import javax.media.protocol.ContentDescriptor;
    import javax.media.protocol.DataSource;

    import java.net.InetAddress;
    import java.net.UnknownHostException;

    public class SimpleVoiceTransmiter {

    /**
    * @param args
    */
    public static void main(String[] args) {
    // First find a capture device that will capture linear audio
    // data at 8bit 8Khz
    AudioFormat format= new AudioFormat(AudioFormat.LINEAR,
    8000,
    8,
    1);

    Vector devices= CaptureDeviceManager.getDeviceList( format);

    CaptureDeviceInfo di= null;

    if (devices.size() > 0) {
    di = (CaptureDeviceInfo) devices.elementAt( 0);
    }
    else {
    // exit if we could not find the relevant capturedevice.
    System.exit(-1);
    }

    // Create a processor for this capturedevice & exit if we
    // cannot create it
    Processor processor = null;
    try {
    processor = Manager.createProcessor(di.getLocator());
    } catch (IOException e) {
    System.exit(-1);
    } catch (NoProcessorException e) {
    System.exit(-1);
    }

    // configure the processor
    processor.configure();

    while (processor.getState() != Processor.Configured){
    try {
    Thread.sleep(100);
    } catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }

    processor.setContentDescriptor(
    new ContentDescriptor( ContentDescriptor.RAW));

    TrackControl track[] = processor.getTrackControls();

    boolean encodingOk = false;

    // Go through the tracks and try to program one of them to
    // output gsm data.

    for (int i = 0; i < track.length; i++) {
    if (!encodingOk && track[i] instanceof FormatControl) {
    if (((FormatControl)track[i]).
    setFormat( new AudioFormat(AudioFormat.GSM_RTP,
    8000,
    8,
    1)) == null) {

    track[i].setEnabled(false);
    }
    else {
    encodingOk = true;
    }
    } else {
    // we could not set this track to gsm, so disable it
    track[i].setEnabled(false);
    }
    }

    // At this point, we have determined where we can send out
    // gsm data or not.
    // realize the processor
    if (encodingOk) {
    processor.realize();
    while (processor.getState() != Processor.Realized){
    try {
    Thread.sleep(100);
    } catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    // get the output datasource of the processor and exit
    // if we fail
    DataSource ds = null;

    try {
    ds = processor.getDataOutput();
    } catch (NotRealizedError e) {
    System.exit(-1);
    }

    // hand this datasource to manager for creating an RTP
    // datasink our RTP datasink will multicast the audio
    try {
    //String url= "rtp://192.168.1.105:22224/audio/16";

    String url="rtp://"+InetAddress.getLocalHost().getHostAddress()+":22224/audio/16";

    System.out.println("La direccion establecida es "+url);

    MediaLocator m = new MediaLocator(url);

    DataSink d = Manager.createDataSink(ds, m);
    d.open();
    d.start();
    processor.start();
    } catch (Exception e) {
    System.exit(-1);
    }

    }

    }

    }

  28. luis fernando said

    hola, buenas tardes, primero quiero agradecer por la ayuda ofrecida con este programa…estoy aprendiendo, y lo estoy implementado en otro programa mas complejo….y me funciona perfectamente en el netbeants, pero cuando tomo el ejecutable de la carpeta “dist” del proyecto entonces ya el programa ya no me encuentra la camara, que podra ser?

    • Cmop said

      debes copiar el archivo jmf.properties en el mismo lugar que esta el JAR de tu aplicacion, para mas detalles lee los comentarios de arriba, alli esta la solucion que acabo de decirte.
      saludos

  29. Yair Rodriguez said

    Oye, tengo un problema. Porque me dice que el Player no se ha iniciado cuando lo ejecuto desde el codigo fuente, que tengo que modificar o cambiar? Me podrias ayudar por favor. Gracias, este es mi correo: airtega@gmail.com

  30. jefraroce said

    Ayuda….! necesito que sirva en un applet y mi maximo logro ha sido que desde el appletviewer me diga “No permission to capture from applets.”

    -Ya lo he firmado
    -Chuleado en la aplicacion JMFRegistry
    -Modificado e applet.policy
    -Modificado el java.policy de la JRE
    😄 La verdad no se que hacer o que deberia volver a intentar, solo he visto que una persona lo ha logrado y cobra $600 por la licencia de su software😛

  31. Fatima said

    descargue el código fuente y me da error en la mayoría de librerías dice que no existe que puedo hacer?

  32. quoroy said

    hola tengo un problema, cuando abro el programa en netbeans me dice que no tengo las librerias JMF, junit y junit_4 , como las agrego?
    gracias

  33. alberto said

    Hola Amigos .. aca tengo una duda .. veo la imagen en mi aplicacion y todo bien .. el problema es como hago para guardar la imagen capturada por la webcam .. trate de acer esto . pero solo llege hasta aqui !! …

    try{

    Image img=null;
    FrameGrabbingControl fgc = (FrameGrabbingControl)
    player.getControl(“javax.media.control.FrameGrabbingControl”);
    Buffer buf = fgc.grabFrame();
    // creamos la imagen awt
    BufferToImage btoi = new BufferToImage((VideoFormat)buf.getFormat());
    img = btoi.createImage(buf);

    if (img != null)
    {

    ByteArrayOutputStream out = new ByteArrayOutputStream();
    ImageIO.write((RenderedImage) img, “JPEG”, out);
    InputStream in = new ByteArrayInputStream(out.toByteArray());

    // ——————————————————————————————————————————-
    // AQUI COMO AGO PARA CONVERTIR LA IMAGEN A BYTE :.. PARA GUARDARLO EN BD SQL
    // ——————————————————————————————————————————-

    }catch(Exception ex){}ç

  34. Carlos said

    El programa es excelente. Cuando corro el ejecutable jar me reconoce la web cam. Pero cuando realizo yo la compilacion en mi netbeans el programa corre pero en los dispositivos no sale nada. Creo que puede ser algo de las libreria o del archivo jmf.properties estoy arrancando y no entiendo mucho. Agradeceria su ayuda

    • Alexánder Murcia Mosquera said

      jmf.properties debe quedar en la carpeta donde se generan los archivos .class. Casi todas las fallas son por ese problema y con eso se soluciona.

  35. gary said

    amigos alguien quye me pueda ayudar no he podido detectar los dispositivos. ayuddaaaaaaaaaaaaaa

    • Alexánder Murcia Mosquera said

      jmf.properties debe quedar en la carpeta donde se generan los archivos .class en tu proyecto NetBeans. Verifica primero que tus dispositivos funcionen en Skype, MSN u otro programa.

  36. Alexánder Murcia Mosquera said

    Cmop muchas gracias por este gran aporte. quisiera consultarte si esta misma librería sirve para implementar una tablet de las que capturan firmas digitales o toca mirar la librería jpen?
    Muchas gracias.

  37. JMF said

    Gracias amigo me has ayudado, pero tengo una pregunta, como puedo guardar imagenes con mas resolucion es decir un tamaño mas grande debido que la camara que uso es de 1080

  38. en mac no me corre amigo, que debo hacer?? ya tengo instalado todo

  39. en mac no me corre amigo, que puede ser?? ya instale todo. importe el proyecto a netbeans pero no me identifica ninguna webcam

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: