时间:2021-05-19
本文为大家分享了java摄像头截图的具体代码,供大家参考,具体内容如下
本来sun有个jmf组件可以很方便的实现摄像头截图的,不过这版本后来停止更新了,当前官网最新版本为Java Media Framework (JMF) 2.1.1e,下载回来,在windows 7 32位上使用,居然不能运行,网上另外找了个jmf的替代框架fmj使用,截图实现代码:
package com.pengo.capture;import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.Graphics2D;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import javax.imageio.ImageIO;import javax.media.MediaLocator;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTextField;import net.sf.fmj.ui.application.CaptureDeviceBrowser;import net.sf.fmj.ui.application.ContainerPlayer;import net.sf.fmj.ui.application.PlayerPanelPrefs;public class CameraFrame extends JFrame{ private static int num = 0; public CameraFrame() throws Exception{ this.setTitle("摄像头截图应用"); this.setSize(480, 500); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final JPanel cameraPanel = new JPanel(); this.getContentPane().setLayout(new BorderLayout()); this.getContentPane().add(cameraPanel, BorderLayout.CENTER); ContainerPlayer containerPlayer = new ContainerPlayer(cameraPanel); MediaLocator locator = CaptureDeviceBrowser.run(null); //弹出摄像头设备选择 // MediaLocator locator = null;// GlobalCaptureDevicePlugger.addCaptureDevices();// Vector vectorDevices = CaptureDeviceManager.getDeviceList(null);// if (vectorDevices == null || vectorDevices.size() == 0)// {// System.out.println("没有摄像头===");// return;// }// //选择第一个摄像头设备// for ( int i = 0; i < vectorDevices.size(); i++ ) // {// CaptureDeviceInfo infoCaptureDevice = (CaptureDeviceInfo) vectorDevices.get(i);// System.out.println("设备名===============" + infoCaptureDevice.getName());// //选择第一个设备为程序使用,如果存在多个设备时,则第一个可能不是摄像头// locator = infoCaptureDevice.getLocator();// break;// } PlayerPanelPrefs prefs = new PlayerPanelPrefs(); containerPlayer.setMediaLocation(locator.toExternalForm(), prefs.autoPlay); JPanel btnPanel = new JPanel(new BorderLayout()); final JTextField path = new JTextField("E:\\camera"); path.setColumns(30); btnPanel.add(path, BorderLayout.WEST); JButton okBtn = new JButton("截图"); okBtn.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ Dimension imageSize = cameraPanel.getSize(); BufferedImage image = new BufferedImage(imageSize.width, imageSize.height, BufferedImage.TYPE_INT_ARGB); Graphics2D g = image.createGraphics(); cameraPanel.paint(g); g.dispose(); try { String filePath = path.getText(); File file = new File(filePath); if(file.exists() == false){ file.mkdirs(); } ImageIO.write(image, "png", new File(file.getAbsolutePath() + "/" + num + ".png")); num++; } catch (IOException ex) { ex.printStackTrace(); } } }); btnPanel.add(okBtn, BorderLayout.EAST); this.getContentPane().add(btnPanel, BorderLayout.SOUTH); } public static void main(String[] args) throws Exception{ CameraFrame camera = new CameraFrame(); camera.setVisible(true); }}源码下载:java摄像头截图
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
使用javascript实现电脑摄像头的打开和截图的功能,供大家参考,具体内容如下摄像头调用实例varvideo,mediaStreamTrack,canvas
前言:vue调用本地摄像头实现拍照功能,由于调用摄像头有使用权限,只能在本地运行,线上需用https域名才可以使用。实现效果:1、摄像头效果:2、拍照效果:实现
Win7、Win8系统下区别于XP系统,通常不显示单独的摄像头图标,若希望实现此功能,只需下载附件中的摄像头插件,双击运行即可实现摄像头图标在“
本文实例为大家分享了java使用电脑摄像头识别二维码的具体代码,供大家参考,具体内容如下要想摄像头识别二维码,需要两个基本功能:1、从摄像头获取图像,2、根据图
本文实例讲述了C#实现IP摄像头的方法。分享给大家供大家参考。具体实现方法如下:#regionIP摄像头代码//////ip摄像头代码/////视频privat