java里有什么类是可以取到摄像头的图像? 写公司的应用无聊了,自己弄点好玩的不知道有没有可以操控摄像头的类? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 反正标准api中是不可能有的.至于有没有什么第三方的东东就不知道了.估计得你自己用jni来实现. 你可以使用JMF来进行视频开发.首先到SUN下载最新的JMF,然后安装。http://java.sun.com/products/java-media/jmf/index.jsp如下是利用JMF,操纵摄像头的程序:1.获取摄像头驱动,和获取摄像头内的图像流public static Player player = null;private CaptureDeviceInfo di = null;private MediaLocator ml = null;String str1 = "vfw:Logitech USB Video Camera:0";String str2 = "vfw:Microsoft WDM Image Capture (Win32):0"; di = CaptureDeviceManager.getDevice(str2);ml = di.getLocator();try{ player = Manager.createRealizedPlayer(ml); player.start(); Component comp; if ((comp = player.getVisualComponent()) != null) { add(comp, BorderLayout.NORTH); }}catch (Exception e){ e.printStackTrace();}2.拍照,获取图像private JButton capture;private Buffer buf = null;private BufferToImage btoi = null;private ImagePanel imgpanel = null;private Image img = null;private ImagePanel imgpanel = null;JComponent c = (JComponent) e.getSource();if (c == capture)//如果按下的是拍照按钮 { FrameGrabbingControl fgc =(FrameGrabbingControl) player.getControl("javax.media.control.FrameGrabbingControl"); buf = fgc.grabFrame(); // 获取当前祯并存入Buffer类 btoi = new BufferToImage((VideoFormat) buf.getFormat()); img = btoi.createImage(buf); // show the image imgpanel.setImage(img);}3.保存图像BufferedImage bi = (BufferedImage) createImage(imgWidth, imgHeight);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(1f, false);//不压缩图像encoder.setJPEGEncodeParam(param);try{ encoder.encode(bi); out.close();}catch (java.io.IOException io){ System.out.println("IOException");} JNA疑问 练习的代码出错了 正则表达式过滤html标点符号,过滤不干净,疑惑! 如何在一个jframe中点击按钮显示另一个jframe 怎么调用windows平台的输入法? 如何用java实现类似于vc的位图编辑器? 在 Window 里面, 如何知道自已启动的 java 线程名呢? JSP问题 关于swing组件中的,thread safe 请教各位一个有关DataStream中的一些问题!!! 这个程序为什么不行? 赋值问题
估计得你自己用jni来实现.
首先到SUN下载最新的JMF,然后安装。http://java.sun.com/products/java-media/jmf/index.jsp
如下是利用JMF,操纵摄像头的程序:
1.获取摄像头驱动,和获取摄像头内的图像流
public static Player player = null;
private CaptureDeviceInfo di = null;
private MediaLocator ml = null;
String str1 = "vfw:Logitech USB Video Camera:0";
String str2 = "vfw:Microsoft WDM Image Capture (Win32):0";
di = CaptureDeviceManager.getDevice(str2);
ml = di.getLocator();
try
{
player = Manager.createRealizedPlayer(ml);
player.start();
Component comp;
if ((comp = player.getVisualComponent()) != null)
{
add(comp, BorderLayout.NORTH);
}
}
catch (Exception e)
{
e.printStackTrace();
}
2.拍照,获取图像
private JButton capture;
private Buffer buf = null;
private BufferToImage btoi = null;
private ImagePanel imgpanel = null;
private Image img = null;
private ImagePanel imgpanel = null;JComponent c = (JComponent) e.getSource();
if (c == capture)//如果按下的是拍照按钮
{
FrameGrabbingControl fgc =(FrameGrabbingControl) player.getControl("javax.media.control.FrameGrabbingControl");
buf = fgc.grabFrame(); // 获取当前祯并存入Buffer类
btoi = new BufferToImage((VideoFormat) buf.getFormat());
img = btoi.createImage(buf); // show the image
imgpanel.setImage(img);
}
3.保存图像
BufferedImage bi = (BufferedImage) createImage(imgWidth, imgHeight);
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(1f, false);//不压缩图像
encoder.setJPEGEncodeParam(param);
try
{
encoder.encode(bi);
out.close();
}
catch (java.io.IOException io)
{
System.out.println("IOException");
}