Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Amerikano|Cls

#121
Java / Re: JMF: No detecta la Cam
24 Marzo 2010, 17:32 PM
Tambien probe obteniendola con "vfw:Microsoft WDM Image Capture (Win32):0" y na de na  :-[
#122
Java / JMF: No detecta la Cam
24 Marzo 2010, 17:31 PM
Saludos a todos, esta vez tengo un pequeño problema a ver si me pueden ayudar  :xD

Resulta que quiero hacer algo con el JMF y lo que se me ocurrio pues es capturar una foto de la WebCam, buscando en google di con este ejemplo:

Código (java) [Seleccionar]
import javax.swing.*;
import java.io.*;
import javax.media.*;
import javax.media.format.*;
import javax.media.util.*;
import javax.media.control.*;
import java.awt.*;
import java.awt.image.*;
import java.awt.event.*;
import com.sun.image.codec.jpeg.*;

public class SwingCapture extends Panel implements ActionListener
{
  public static Player player = null;
  public CaptureDeviceInfo di = null;
  public MediaLocator ml = null;
  public JButton capture = null;
  public Buffer buf = null;
  public Image img = null;
  public VideoFormat vf = null;
  public BufferToImage btoi = null;
  public ImagePanel imgpanel = null;

  public SwingCapture()
  {
    setLayout(new BorderLayout());
    setSize(320,550);

    imgpanel = new ImagePanel();
    capture = new JButton("Capture");
    capture.addActionListener(this);

    String str1 = "vfw:Logitech USB Video Camera:0";
    String str2 = "vfw:Microsoft WDM Image Capture (Win32):0";
    di = CaptureDeviceManager.getDevice(str1);
    ml = di.getLocator();

    try
    {
      player = Manager.createRealizedPlayer(ml);
      player.start();
      Component comp;

      if ((comp = player.getVisualComponent()) != null)
      {
        add(comp,BorderLayout.NORTH);
      }
      add(capture,BorderLayout.CENTER);
      add(imgpanel,BorderLayout.SOUTH);
    }
    catch (Exception e)
    {
      e.printStackTrace();
    }
  }

  public static void main(String[] args)
  {
    Frame f = new Frame("SwingCapture");
    SwingCapture cf = new SwingCapture();

    f.addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
      playerclose();
      System.exit(0);}});

    f.add("Center",cf);
    f.pack();
    f.setSize(new Dimension(320,550));
    f.setVisible(true);   

  }


  public static void playerclose()
  {
    player.close();
    player.deallocate();
  }

  public void actionPerformed(ActionEvent e)
  {
    JComponent c = (JComponent) e.getSource();

    if (c == capture)
    {
      // Grab a frame
      FrameGrabbingControl fgc = (FrameGrabbingControl)
      player.getControl("javax.media.control.FrameGrabbingControl");
      buf = fgc.grabFrame();

      // Convert it to an image
      btoi = new BufferToImage((VideoFormat)buf.getFormat());
      img = btoi.createImage(buf);

      // show the image
      imgpanel.setImage(img);

      // save image
      saveJPG(img,"c:\\test.jpg");
    }
  }

  class ImagePanel extends Panel
  {
    public Image myimg = null;

    public ImagePanel()
    {
      setLayout(null);
      setSize(320,240);
    }

    public void setImage(Image img)
    {
      this.myimg = img;
      repaint();
    }

    public void paint(Graphics g)
    {
      if (myimg != null)
      {
        g.drawImage(myimg, 0, 0, this);
      }
    }
  }

  public static void saveJPG(Image img, String s)
  {
    BufferedImage bi = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_RGB);
    Graphics2D g2 = bi.createGraphics();
    g2.drawImage(img, null, null);

    FileOutputStream out = null;
    try
    {
      out = new FileOutputStream(s);
    }
    catch (java.io.FileNotFoundException io)
    {
      System.out.println("File Not Found");
    }

    JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
    JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);
    param.setQuality(0.5f,false);
    encoder.setJPEGEncodeParam(param);

    try
    {
      encoder.encode(bi);
      out.close();
    }
    catch (java.io.IOException io)
    {
      System.out.println("IOException");
    }
  }

}


Pero el problema es que al compilarlo y ejecutarlo me lanza una excepcion: NullPointerException, pues al parecer no detecto la cam y devolvio null, en la siguiente linea:

Código (java) [Seleccionar]
ml = di.getLocator();

El problema no es con la cam porque el programa que trae el JMF por defecto para hacer las pruebas si la detecta correctamente y me muestra imagen, pero en este ejmplo no. A ver si me ayudan con esto, de antemano gracias  ;D
#123
Cita de: Jose Pablo en 14 Marzo 2010, 08:01 AM
bueno ya empeze a trabajar sin embargo ese tuto empieza explicando sobre el olly lo kual yase me adelante pokito lo que ya sabia y no ense;a a desempacar sino asta la leccion 21 bueno de todos modos lo empeze con la leccion 11
me gustarian que me ayudaran a desempacar un programa de juego bueno no quiero que me lo desempaken sino que io quiero aserlo diganme si se puede o esta proibido en el foro sino para mejor aguantarme asta terminar el curso :-X :-X
saludos y no tengo prisa XD

Si quieres aprender a desempacar no te aconsejo adelantarte las lecciones, ya que usa conceptos que se tratan en las anteriores lecciones, y lo cual te perderias y no sabras que es cada cosa  ;)
#125
Java / Re: Tomar una foto desde una webcam
13 Marzo 2010, 21:35 PM
Mil gracias men!!!  ;-) ;-)
#126
Cita de: Castiblanco en 13 Marzo 2010, 13:21 PM
Cita de: Amerikano|Cls en 13 Marzo 2010, 05:00 AM
Cita de: ddk en 13 Marzo 2010, 02:41 AM
Cita de: Amerikano|Cls en 13 Marzo 2010, 02:40 AM
Cita de: ddk en 12 Marzo 2010, 20:07 PM
En Colombia (almenos mi ciudad) la Ingeniería de Sistemas lleva electrónica.

Yo tambien soy de colombia y tambien lleva electronica (digital en mi caso) la carrera, pero no necesariamente debe llevarla ;).

¿Que universidad? La mia EAFIT...

Universidad del Quindio  :P

Yo también soy de Colombia xD pero de Bogotá y si también me dictaran electrónica, pero aún me faltan semestres :P

Cita de: Darhius en 13 Marzo 2010, 04:04 AM
Por cierto creo que desanime a mi alumna al mencinarle que lleva muchas mates o tal vez me vi algo exagerado alguna sugerencia para animarla, y pues sobre ella puedo decir que es muy buena en todo lo que hace.

La verdad es mejor que se entere primero, porque en mi universidad ocurren casos que piensan que estudiar Ing Sistemas es sentarse todo el día en el PC y cuando comienza a ver matemáticas se espantan xD

Saludos...

Exactamente!!  ;D
#127
Cita de: ddk en 13 Marzo 2010, 02:41 AM
Cita de: Amerikano|Cls en 13 Marzo 2010, 02:40 AM
Cita de: ddk en 12 Marzo 2010, 20:07 PM
En Colombia (almenos mi ciudad) la Ingeniería de Sistemas lleva electrónica.

Yo tambien soy de colombia y tambien lleva electronica (digital en mi caso) la carrera, pero no necesariamente debe llevarla ;).

¿Que universidad? La mia EAFIT...

Universidad del Quindio  :P
#128
Cita de: ddk en 12 Marzo 2010, 20:07 PM
En Colombia (almenos mi ciudad) la Ingeniería de Sistemas lleva electrónica.

Yo tambien soy de colombia y tambien lleva electronica (digital en mi caso) la carrera, pero no necesariamente debe llevarla ;).
#129
Cita de: LastDragon en 11 Marzo 2010, 20:05 PM
Las ingenierias llevan electronica, diseño de circuitos

la licenciatura lleva programacion y administracion

No necesariamente. Ingenieria involucra el conocimiento de las Ciencias Basicas para ser aplicadas en el entorno que te vayas a dedicar, por ende es comun que los pensums de las carreras involucren los Calculos, Fisicas y mas, pero no necesariamente una Electronica  ;)
#130
El hecho de ser "Sistemas" involucra algo muy distinto a una ingenieria, si te interesa consulta sobre la TGS (Teoria General de Sistemas) y te daras cuenta del enfoque que debera tener alguna carrera que se haga llamar Ingenieria de Sistemas luego si es "y computacion" este enfoque sistemico estara orientado a la computacion e informatico, que son cosas muy distintas pero se complementan muy bien :P