Note that there are some explanatory texts on larger screens.

plurals
  1. POWhen I try to capture a image from my webcam, its take a all black image
    primarykey
    data
    text
    <p>I've downloaded a <a href="http://webcamapplet.sourceforge.net/" rel="nofollow">java project</a> in which interacts with my webcam. I'm trying to add the functionality to take pictures through the webcam, or just capture the current image and save it in my C: directory</p> <p>I created a button called Capture (startC) and did an ActionListener</p> <p><strong>ActionListener</strong></p> <pre><code>startC.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // Grab a frame FrameGrabbingControl fgc = new FrameGrabbingControl() { @Override public Component getControlComponent() { // TODO Auto-generated method stub return null; } @Override public Buffer grabFrame() { // return null; return new Buffer(); } }; player.getControl("javax.media.control.FrameGrabbingControl"); buf = fgc.grabFrame(); // Convert it to an image BufferToImage btoi = new BufferToImage((VideoFormat)buf.getFormat()); // btoi = new BufferToImage((VideoFormat)buf.getFormat()); img = btoi.createImage(buf); // show the image //imgpanel.setImage(img); // save image try { saveJPG(img,"c:\\test.jpg"); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } }); </code></pre> <p><strong>UPDATED ActionListener</strong></p> <pre><code>startC.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { Vector devices = CaptureDeviceManager.getDeviceList(null); CaptureDeviceInfo cdi = null; for (Iterator i = devices.iterator(); i.hasNext();) { cdi = (CaptureDeviceInfo) i.next(); /* * Get the first Video For Windows (VFW) capture device. Use * the JMF registry tool in the bin directory of the JMF * distribution to detect available capture devices on your * computer. */ if (cdi.getName().startsWith("vfw:")) break; } try { player = Manager.createRealizedPlayer(cdi.getLocator()); player.start(); } catch (NoPlayerException e2) { e2.printStackTrace(); } catch (CannotRealizeException e3) { e3.printStackTrace(); } catch (IOException e4) { e4.printStackTrace(); } // start the Timer with 3s intervals new Timer(3000, this).start(); // Grab a frame from the capture device FrameGrabbingControl fgc = (FrameGrabbingControl) player.getControl("javax.media.control.FrameGrabbingControl"); buf = fgc.grabFrame(); BufferToImage btoi = new BufferToImage((VideoFormat) buf .getFormat()); img = btoi.createImage(buf); }); </code></pre> <p><strong>SaveJPG method</strong></p> <pre><code> public static void saveJPG(Image img, String s) throws IOException { BufferedImage bi = new BufferedImage(640, 480, BufferedImage.TYPE_INT_RGB); File outputfile = new File("C:\\saved.jpg"); ImageIO.write(bi, "png", outputfile); } </code></pre> <p>The problem is that when I click Capture, is simply saving a screen all black, and that's not what the webcam is focusing.</p> <p>Can someone help?</p> <p><strong>@UPDATE</strong></p> <p>Line 520 = <code>buf = fgc.grabFrame();</code></p> <pre><code>Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException at com.colorfulwolf.webcamapplet.WebcamApplet$6.actionPerformed(WebcamApplet.java:520) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$000(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload