elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  [SOLUCIONADO]Tomar una foto desde una webcam
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [SOLUCIONADO]Tomar una foto desde una webcam  (Leído 23,383 veces)
ZeroVzla

Desconectado Desconectado

Mensajes: 71


Ver Perfil
[SOLUCIONADO]Tomar una foto desde una webcam
« en: 23 Febrero 2010, 17:44 pm »

Hola a todos, de ante mano muchas gracias por tomarse la molestia de leer este post...

Estoy creando una aplicacion en java que por dadas causas necesita tomar una foto desde una camara web u otro tipo de camara que se conecte a la pc. El problema es que no tengo ni la mas remota idea de como hacerlo, si pudieran guiarme un poco en este tema (utilizar la camara web u otro tipo de camara en java) se los agradeceria con el alma :D..

Muchas Gracias!!!

 


« Última modificación: 30 Junio 2010, 18:52 pm por Debci » En línea

ZeroVzla

Desconectado Desconectado

Mensajes: 71


Ver Perfil
Re: Tomar una foto desde una webcam
« Respuesta #1 en: 12 Marzo 2010, 04:46 am »

  
   Ya resolvi xD... y por si alguien quiere saber como tomar la foto les dejo este codigo (que no es mio por si acaso) a fin de contribuir con algo :D

Primero deben descargar e instalar el JMF siguiendo este enlace:
http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/download.html

    Luego ya pueden ejecutar el codigo:

Código
  1. import javax.swing.*;
  2. import java.io.*;
  3. import javax.media.*;
  4. import javax.media.format.*;
  5. import javax.media.util.*;
  6. import javax.media.control.*;
  7. import java.awt.*;
  8. import java.awt.image.*;
  9. import java.awt.event.*;
  10. import com.sun.image.codec.jpeg.*;
  11.  
  12. public class SwingCapture extends Panel implements ActionListener
  13. {
  14.  public static Player player = null;
  15.  public CaptureDeviceInfo di = null;
  16.  public MediaLocator ml = null;
  17.  public JButton capture = null;
  18.  public Buffer buf = null;
  19.  public Image img = null;
  20.  public VideoFormat vf = null;
  21.  public BufferToImage btoi = null;
  22.  public ImagePanel imgpanel = null;
  23.  
  24.  public SwingCapture()
  25.  {
  26.    setLayout(new BorderLayout());
  27.    setSize(320,550);
  28.  
  29.    imgpanel = new ImagePanel();
  30.    capture = new JButton("Capture");
  31.    capture.addActionListener(this);
  32.  
  33.    String str1 = "vfw:Logitech USB Video Camera:0";
  34.    String str2 = "vfw:Microsoft WDM Image Capture (Win32):0";
  35.    di = CaptureDeviceManager.getDevice(str2);
  36.    ml = di.getLocator();
  37.  
  38.    try
  39.    {
  40.      player = Manager.createRealizedPlayer(ml);
  41.      player.start();
  42.      Component comp;
  43.  
  44.      if ((comp = player.getVisualComponent()) != null)
  45.      {
  46.        add(comp,BorderLayout.NORTH);
  47.      }
  48.      add(capture,BorderLayout.CENTER);
  49.      add(imgpanel,BorderLayout.SOUTH);
  50.    }
  51.    catch (Exception e)
  52.    {
  53.      e.printStackTrace();
  54.    }
  55.  }
  56.  
  57.  public static void main(String[] args)
  58.  {
  59.    Frame f = new Frame("SwingCapture");
  60.    SwingCapture cf = new SwingCapture();
  61.  
  62.    f.addWindowListener(new WindowAdapter() {
  63.      public void windowClosing(WindowEvent e) {
  64.      playerclose();
  65.      System.exit(0);}});
  66.  
  67.    f.add("Center",cf);
  68.    f.pack();
  69.    f.setSize(new Dimension(320,550));
  70.    f.setVisible(true);  
  71.  
  72.  }
  73.  
  74.  
  75.  public static void playerclose()
  76.  {
  77.    player.close();
  78.    player.deallocate();
  79.  }
  80.  
  81.  public void actionPerformed(ActionEvent e)
  82.  {
  83.    JComponent c = (JComponent) e.getSource();
  84.  
  85.    if (c == capture)
  86.    {
  87.      // Grab a frame
  88.      FrameGrabbingControl fgc = (FrameGrabbingControl)
  89.      player.getControl("javax.media.control.FrameGrabbingControl");
  90.      buf = fgc.grabFrame();
  91.  
  92.      // Convert it to an image
  93.      btoi = new BufferToImage((VideoFormat)buf.getFormat());
  94.      img = btoi.createImage(buf);
  95.  
  96.      // show the image
  97.      imgpanel.setImage(img);
  98.  
  99.      // save image
  100.      saveJPG(img,"c:\\test.jpg");
  101.    }
  102.  }
  103.  
  104.  class ImagePanel extends Panel
  105.  {
  106.    public Image myimg = null;
  107.  
  108.    public ImagePanel()
  109.    {
  110.      setLayout(null);
  111.      setSize(320,240);
  112.    }
  113.  
  114.    public void setImage(Image img)
  115.    {
  116.      this.myimg = img;
  117.      repaint();
  118.    }
  119.  
  120.    public void paint(Graphics g)
  121.    {
  122.      if (myimg != null)
  123.      {
  124.        g.drawImage(myimg, 0, 0, this);
  125.      }
  126.    }
  127.  }
  128.  
  129.  public static void saveJPG(Image img, String s)
  130.  {
  131.    BufferedImage bi = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_RGB);
  132.    Graphics2D g2 = bi.createGraphics();
  133.    g2.drawImage(img, null, null);
  134.  
  135.    FileOutputStream out = null;
  136.    try
  137.    {
  138.      out = new FileOutputStream(s);
  139.    }
  140.    catch (java.io.FileNotFoundException io)
  141.    {
  142.      System.out.println("File Not Found");
  143.    }
  144.  
  145.    JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
  146.    JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);
  147.    param.setQuality(0.5f,false);
  148.    encoder.setJPEGEncodeParam(param);
  149.  
  150.    try
  151.    {
  152.      encoder.encode(bi);
  153.      out.close();
  154.    }
  155.    catch (java.io.IOException io)
  156.    {
  157.      System.out.println("IOException");
  158.    }
  159.  }
  160.  
  161. }
  162.  

Ha y por si quieren saber el nombre de su dispositivo o camara web aqui les dejo un metodo que se los muestra ( este si lo hice yo xD.. )

Código
  1. public void devices(){
  2.    Vector devices = new Vector (CaptureDeviceManager.getDeviceList(null));
  3.    for(int i=0;i<devices.size();i++)
  4.    System.out.println(devices.elementAt(i));
  5.  }
  6.  

Bueno Saludos!!!!! Por cierto ya es obvio que se puede cerrar el tema :D


En línea

Amerikano|Cls


Desconectado Desconectado

Mensajes: 789


[Beyond This Life]


Ver Perfil WWW
Re: Tomar una foto desde una webcam
« Respuesta #2 en: 13 Marzo 2010, 21:35 pm »

Mil gracias men!!!  ;-) ;-)
En línea





Mi blog:
http://amerikanocls.blogspot.com
ZeroVzla

Desconectado Desconectado

Mensajes: 71


Ver Perfil
Re: Tomar una foto desde una webcam
« Respuesta #3 en: 19 Junio 2010, 00:36 am »

Citar
JavIut

Hola amigo probe tu codigo pero no logro conseguir o no logra conseguir ningun Capture Device ya he instalado JMF y incluso lo he usado el programa y funciona y toma video y todo.. y he visto que acepta lo siguiente
Name = vfw:Microsoft WDM Image Capture (Win32):0

Locator = vfw://0

Output Formats---->

pero cuando lo uso en el codigo me dice que no existe.. y monto los devices y no me muestra ninguno me puedes dar un clue.. Christian Ortiz Vzla



Hola broht..

Mmmmm bueno no entendi muy bien  :huh:.... Cuando dices que haz usado el programa y funciona t refieres a que con el codigo que esta en el foro si se ve el video y toma la foto????

"no logro conseguir o no logra conseguir ningun Capture Device"?? t refieres a que la salida de metodo devices sólo t devuelve Name = vfw:Microsoft WDM Image Capture (Win32):0??

"pero cuando lo uso en el codigo me dice que no existe.. "?? cuando lo usas en el codigo de tu programa??????

"y monto los devices y no me muestra ninguno"?? t refieres a que conectas la cámara a tu computador??..

Por favor se un poco mas específico :D...

Ahora bien, y sin animos de ofender tus conocimientos, debes tener el driver de la camara instalado aparte del JMF. Otra cosa el metodo "devices()" t muestra los controladores de video pero la salida "vfw:Microsoft WDM Image Capture (Win32):0" se refiere al controlador universal de windows, lo que quiere decir que puedes utilizar este para conectarte con la webcam, que de echo es con ese que se conecta el codigo del post..

Seria bueno que me mandaras la salida del metodo "devices()" :D.. al igual que tu codigo a ver si podemos resolver xD... Tambien recuerda que estamos en un foro y que tu problema le puede surgir a otra persona, y si resolvemos solo por los mp's los demas no podrán ver la solución, por eso lo voy a poner como respuesta al post y por alli deberias postear lo que t pedi....

Bueno un saludo broth.. See us!!!!  ZeroVzla....
En línea

Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: Tomar una foto desde una webcam
« Respuesta #4 en: 19 Junio 2010, 00:47 am »

Sensacional tengo algo parecido que use en mi troyano...

Jejeje sed buenos...

Saludos
En línea

ZeroVzla

Desconectado Desconectado

Mensajes: 71


Ver Perfil
Re: Tomar una foto desde una webcam
« Respuesta #5 en: 19 Junio 2010, 01:09 am »

Mmmmm capturar la imagen de la webcam remota con ese no se puede xD... ya que depende del JMF... Sería interesante ver como hicistes :D...

Saludos.. See us!! ZeroVzla...
En línea

Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: Tomar una foto desde una webcam
« Respuesta #6 en: 23 Junio 2010, 21:39 pm »

Mmmmm capturar la imagen de la webcam remota con ese no se puede xD... ya que depende del JMF... Sería interesante ver como hicistes :D...

Saludos.. See us!! ZeroVzla...
Como que no?
Sencillamente en el programa servidor en el pc victima, realiza la captura y transforma la imagen en una matriz de datos tipo byte y la transfieres por stream, asi de sencillo.


Y comentarte tambien que se pueden incluir las libs dentro del mismo jar para compactarlo todo.

Saludos
En línea

ZeroVzla

Desconectado Desconectado

Mensajes: 71


Ver Perfil
Re: Tomar una foto desde una webcam
« Respuesta #7 en: 25 Junio 2010, 05:29 am »

Mmmm....  Ok lo de enviar la imagen si lo pude digerir xD... pero como harias para capturar la imagen sin el JMF instalado????
En línea

Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: Tomar una foto desde una webcam
« Respuesta #8 en: 25 Junio 2010, 08:33 am »

Mmmm....  Ok lo de enviar la imagen si lo pude digerir xD... pero como harias para capturar la imagen sin el JMF instalado????
Siempre puede generar el servidor con la libreria integrada, o subirla despues y ejecutarla, por algo es un troyano.

Saludos
En línea

ZeroVzla

Desconectado Desconectado

Mensajes: 71


Ver Perfil
Re: Tomar una foto desde una webcam
« Respuesta #9 en: 29 Junio 2010, 06:02 am »

Mmmmm.. si bueno... xD... es que tenia la duda de que si se debia instalar obligado el prog en la maquina porque una vez utlice en mi prog una libreria para manejar puertos seriales y si lo ejecutaba desde el compilador todo fino, pero si generaba el jar con todo y librerias incluidas en el y lo ejecutaba me daba error porque no agarraba esa libreria.. tenia que pasar la libreria al system32 de windows en ese caso en particular y asi si corria.. igual tal vez era sólo mi ignorancia aflorando xD.. jeje...
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[solucionado] para ver foto que se almacena en servidor y link en BD,
PHP
~V 6 4,284 Último mensaje 22 Julio 2011, 23:27 pm
por ~V
Webcam no detectada despues de actualizacion [SOLUCIONADO]
GNU/Linux
XNor 0 1,800 Último mensaje 20 Enero 2013, 21:00 pm
por XNor
Tomar variables desde txt usando grupos de palabras
Scripting
AlonsoBytes 1 2,315 Último mensaje 17 Noviembre 2014, 17:43 pm
por Eleкtro
WhatsApp: Así puedes tomar una foto de alguien que trate de espiar tus mensajes
Noticias
wolfbcn 2 3,195 Último mensaje 11 Junio 2018, 20:35 pm
por Serapis
Tomar una foto desde una webcam
Java
TickTack 1 2,255 Último mensaje 2 Agosto 2019, 20:30 pm
por simorg
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines