পৃষ্ঠাসমূহ

বৃহস্পতিবার, ১৯ জানুয়ারী, ২০১২

Capturing Image from webcam in Java

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Date;

import javax.imageio.ImageIO;
import javax.media.Buffer;
import javax.media.CannotRealizeException;
import javax.media.CaptureDeviceInfo;
import javax.media.CaptureDeviceManager;
import javax.media.Manager;
import javax.media.MediaLocator;
import javax.media.NoPlayerException;
import javax.media.Player;
import javax.media.control.FrameGrabbingControl;
import javax.media.format.VideoFormat;
import javax.media.util.BufferToImage;

public class JMF {

public static void main(String[] args)
{
//CaptureDeviceInfo deviceInfo = CaptureDeviceManager.getDevice("vfw:Microsoft WDM Image Capture (Win32):0");
// CaptureDeviceInfo deviceInfo = CaptureDeviceManager.getDevice("vfw:Microsoft WDM Image Capture (Win32):0");
Player player = null;
System.out.println("starting");
//player = Manager.createRealizedPlayer(deviceInfo.getLocator());
MediaLocator mdl=new MediaLocator("vfw://0");
try {
player = Manager.createRealizedPlayer(mdl);
} catch (NoPlayerException e) {
System.out.println("ex1");
// TODO Auto-generated catch block
e.printStackTrace();
} catch (CannotRealizeException e) {
System.out.println("2");
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
System.out.println("3");
// TODO Auto-generated catch block
e.printStackTrace();
}
player.start();
try {
Thread.sleep(2500);
} catch (InterruptedException e) {
System.out.println("4");
// TODO Auto-generated catch block
e.printStackTrace();
}
//FrameGrabbingControl frameGrabber = (FrameGrabbingControl)player.getControl("javax.media.control.FrameGrabbingControl");
/*Buffer buf = frameGrabber.grabFrame();

//Image img = (new BufferToImage((VideoFormat)buf.getFormat()).createImage(buf));
//BufferedImage img= ((VideoFormat)buf.getFormat()).;
//System.out.println(img.getWidth(null)+"height");
// BufferedImage img=ImageIO.read(new File("E:\\windows workspace\\test1\\Desert.jpg"));
//BufferedImage buffImg = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_RGB);
BufferedImage buffImg = new BufferedImage(1024, 768, BufferedImage.TYPE_INT_RGB);
Graphics2D g = buffImg.createGraphics();
g.drawImage(img, 0,0, null);*/
FrameGrabbingControl fgc = (FrameGrabbingControl)
player.getControl("javax.media.control.FrameGrabbingControl");
Buffer buf = fgc.grabFrame();

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


//BufferedImage buffImg = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_RGB);
BufferedImage buffImg = new BufferedImage(1024, 768, BufferedImage.TYPE_INT_RGB);
Graphics2D g=buffImg.createGraphics();
g.drawImage(img, 0,0, null);

g.setColor(Color.RED);
g.setFont(new Font("Verdana", Font.BOLD, 16));
g.drawString((new Date()).toString(), 10, 25);

/*try {
ImageIO.write(buffImg, "jpg", new File("E:\\webcam1.jpg"));
} catch (IOException e) {
System.out.println("IO hhhhhhh");
// TODO Auto-generated catch block
e.printStackTrace();
}*/

player.close();
player.deallocate();
System.exit(0);
}
}