WEB-CAMM picture capturing

D

Dag Sunde

azsx said:
Can someone tell how can I use Java to capture some webcamm data?


Take a look at "Java Media Framework API (JMF)"
(See here: http://java.sun.com/products/java-media/jmf/index.jsp)


Below is a sample that works ok with my 10$ camera...:

//------------------------------------
import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.image.*;
import javax.imageio.*;
import javax.media.*;
import javax.media.control.*;
import javax.media.format.*;
import javax.media.util.*;


/**
* Grabs a frame from a Webcam, overlays the current date and time,
* and saves the frame as a PNG to c:\webcam.png
*
* @author David
* @version 1.0, 16/01/2004
*/
public class FrameGrab
{
public static void main(String[] args) throws Exception
{
// Create capture device
CaptureDeviceInfo deviceInfo = CaptureDeviceManager.getDevice(
"vfw:Microsoft WDM Image Capture (Win32):0");

Player player = Manager.createRealizedPlayer(deviceInfo.getLocator());
player.start();

// Wait a few seconds for camera to initialise (otherwise img==null)
Thread.sleep(2500);

// Grab a frame from the capture device
FrameGrabbingControl frameGrabber =
(FrameGrabbingControl)player.getControl(
"javax.media.control.FrameGrabbingControl");

Buffer buf = frameGrabber.grabFrame();

// Convert frame to an buffered image so it can be processed and saved
Image img = (new
BufferToImage((VideoFormat)buf.getFormat()).createImage(buf));
BufferedImage buffImg = new BufferedImage(img.getWidth(null),
img.getHeight(null), BufferedImage.TYPE_INT_RGB);

Graphics2D g = buffImg.createGraphics();
g.drawImage(img, null, null);

// Overlay curent time on image
g.setColor(Color.RED);
g.setFont(new Font("Verdana", Font.BOLD, 16));
g.drawString((new Date()).toString(), 10, 25);

// Save image to disk as PNG
ImageIO.write(buffImg, "jpg", new File(
"d:\\javaProjects\\capture\\src\\webcam.jpg"));

// Stop using webcam
player.close();
player.deallocate();
System.exit(0);
}
}
//------------------------------------
 
A

azsx

Thanks. Now I have another issue: how can I transmit web-camera data
via a network or Internet???
 
D

Dag Sunde

azsx said:
Thanks. Now I have another issue: how can I transmit web-camera data
via a network or Internet???

Live?
Read the API doc and samples at the link I posted.
The word you're looking for is probably "Streaming"

But if you mean how to publish a static picture out
on a web-server or another network machine after you grabbed
it, its only a question of copying it, POSTing it via http,
FTP it or whatever means you find convenient.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top