使用Java调用摄像头进行拍照源码,并且有JMF下载地址。
JMF安装文件下载地址:
http://www.blackswansoft.com/songhaikang/files/myfile/Java Media Framework (JMF) API播放.rar
JMF驱动包下载地址:
http://www.blackswansoft.com/songhaikang/files/myfile/jmf.jar
更多优秀的Java案例,请到http://www.blackswansoft.com/去参考。
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.BufferedImage;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
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;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import com.sun.image.codec.jpeg.ImageFormatException;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
//import com.sun.media.protocol.vfw.DataSource;
import com.sun.media.protocol.rtsp.DataSource;
public class FirstCapture extends JPanel implements ActionListener{
private CaptureDeviceInfo captureDeviceInfo=null;
private MediaLocator mediaLocator=null;
private static Player player=null;
private ImagePanel imagePanel=null;
private JButton capture;
private Buffer buffer=null;
private VideoFormat videoFormat=null;
private BufferToImage bufferToImage=null;
private Image image=null;
public FirstCapture()
{
setLayout(new BorderLayout());
setSize(320,550);
captureDeviceInfo=CaptureDeviceManager.getDevice("vfw:Microsoft WDM Image Capture (Win32):0"); //这里放置的是视频驱动
mediaLocator=new MediaLocator("vfw://0"); //这里是视频地址
imagePanel=new ImagePanel();
capture=new JButton("拍照");
capture.addActionListener(this);
DataSource ds = new DataSource();
ds.setLocator(mediaLocator);
try {
player=Manager.createRealizedPlayer(mediaLocator);
player.start();
Component comp;
Component comp1;
if((comp=player.getVisualComponent())!=null)
add(comp,BorderLayout.NORTH);
// if((comp1=player.getControlPanelComponent())!=null)
// add(comp1,BorderLayout.CENTER);
} catch (NoPlayerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (CannotRealizeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
add(imagePanel,BorderLayout.SOUTH);
add(capture,BorderLayout.CENTER);
}
@Override
public void print(Graphics g) {
// TODO Auto-generated method stub
super.print(g);
g.setColor(new Color(255,0,0));
g.drawLine(0, 0, 100, 100);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame f = new JFrame("FirstCapture");
FirstCapture cf = new FirstCapture();
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
player.close();
System.exit(0);}});
f.add("Center",cf);
f.pack();
f.setSize(new Dimension(320,550));
f.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
FrameGrabbingControl fgc=(FrameGrabbingControl)player.getControl("javax.media.control.FrameGrabbingControl");
buffer=fgc.grabFrame();
bufferToImage=new BufferToImage((VideoFormat)buffer.getFormat());
image=bufferToImage.createImage(buffer);
imagePanel.setImage(image);
saveImage(image,"D:/test.jpg");
}
public static void saveImage(Image image,String path)
{
BufferedImage bi=new BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = bi.createGraphics();
g2.drawImage(image, null, null);
FileOutputStream fos=null;
try {
fos=new FileOutputStream(path);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
JPEGImageEncoder je=JPEGCodec.createJPEGEncoder(fos);
JPEGEncodeParam jp=je.getDefaultJPEGEncodeParam(bi);
jp.setQuality(0.5f, false);
je.setJPEGEncodeParam(jp);
try {
je.encode(bi);
fos.close();
} catch (ImageFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
class ImagePanel extends Panel
{
public Image myimg = null;
public ImagePanel()
{
setLayout(null);
setSize(320,240);
}
public void setImage(Image img)
{
this.myimg = img;
repaint();
}
public void paint(Graphics g)
{
if (myimg != null)
{
g.drawImage(myimg, 0, 0, this);
}
}
}
}
推荐软件
用java开发的一款功能强大的开源的远程控制软件,最近又升级了,添加了许多使用的功能,而且代码也有了很大程度的优化。可以实现
生成服务器、修改上线主机名称、屏幕监视,屏幕控制、主动连接、上传文件、下载文件、 远程命令、远程任务管理器、发送警告、相互聊天、换皮肤、版本升级提醒等功能,通过该软件可以实现用一台电脑同时控制多台电脑,也可以多台电脑控制同一台电脑等。
软件官方网站下载地址:http://dl.iteye.com/topics/download/c1b7acd2-c7ad-3753-8929-48424025d711
软件如下图所示:
分享到:
相关推荐
使用Java调用摄像头进行拍照源码。 JMF安装文件下载地址: http://www.blackswansoft.com/songhaikang/files/myfile/Java Media Framework (JMF) API播放.rar
以下是对标题“java Swing 中调用摄像头拍照源码(有说明)”和描述的详细解释,以及相关知识点的深入探讨。 1. **Swing简介**: Swing是Java的GUI库,它基于Java Foundation Classes (JFC),提供了一套轻量级的...
在标题和描述中提到的“jmf架构的调用摄像头拍照的源码”,是指利用JMF来访问和控制摄像头,实现拍照功能的代码示例。 JMF的工作原理是通过注册不同的Media Players来处理特定格式的媒体数据。这些Media Players...
本示例“java调用摄像头推流(针对安卓系统的英特尔处理器)”旨在教你如何在搭载英特尔处理器的Android设备上,利用Java编程语言调用摄像头并进行实时流媒体推送。以下是关于这个主题的详细知识讲解。 首先,我们...
Java摄像头拍照源码是针对Java ME(J2ME)平台设计的一种功能,允许开发者在移动设备上集成摄像头功能,实现拍照并保存图片的应用。J2ME是Java的一个子集,主要用于嵌入式设备和移动设备,如手机和PDA。在Java ME中...
标题中的"java调用摄像头printScreen4web源码借鉴.pdf"指的是一个Java项目,该项目旨在实现Web应用程序调用用户电脑的摄像头进行图像捕获、截图,并将这些图像上传到服务器的功能。描述中提到,开发者已经成功实现了...
在使用Delphi 10.2进行Android应用开发时,调用和控制摄像头是一项常见的功能需求。本示例将深入探讨如何实现这一功能,并提供一些关键知识点和注意事项。 首先,要调用Android设备的摄像头,我们需要使用Android ...
在这个"asp.net网页调用本地摄像头源码"的项目中,开发者提供了一种方法让ASP.NET网页能够调用用户计算机上的摄像头。 首先,`index.html`是网页的主入口文件,可能包含了HTML代码以及JavaScript脚本,用于初始化...
javaWeb调用摄像头拍照,有两种解决方案:一种是使用ActiveX控件调用摄像头实现拍照上传功能,这种方式只能在ie浏览器下有效,限制非常大;另一种是调用flash实现拍照功能,源码主要介绍下如果通过调用flash插件实现...
在这个"asp.net使用摄像头拍照源码"项目中,开发者提供了一种方法,使得在Web应用程序中可以利用用户的电脑摄像头进行拍照并处理相关图像。下面将详细阐述相关知识点。 1. **ASP.NET 控件开发**: ASP.NET 提供了...
jsp+servlet实现,包括后台保存为图片代码。 两种模式: 1:直接修改网上图片 ...2:接用本地摄像头,拍照后处理上传。 整个工程,源码一起上传,下载eclipse导入后直接可以测试。 flash为:AvatarEditor.swf
在Android平台上,调用摄像头进行实时预览是开发过程中常见的需求,特别是在开发摄影、视频聊天或者AR应用时。本文将详细讲解如何在320*320像素、mdpi屏幕分辨率下设置摄像头预览。 首先,理解Android的屏幕密度...
在本项目中,我们主要探讨如何使用Spring Boot和MyBatis框架来调用网络摄像头进行录像,以华为摄像头为例,并且实现将录制的视频通过SFTP协议上传到远程服务器进行存储。以下是对该项目涉及的技术点的详细说明: 1....
<title>JSP调用摄像头拍照 navigator.mediaDevices.getUserMedia({video: true, audio: false}) .then(function(stream) { var video = document.querySelector('video'); video.srcObject = stream; video....
总结来说,Android中的摄像头操作涉及Intent的使用来调用系统相机,以及SurfaceView和Camera类的结合来实现自定义相机功能。了解这些知识点对于开发涉及相机的应用至关重要,特别是对于希望深入学习Android多媒体...
本教程将深入探讨如何利用Xuggler库来实现在Java Swing界面上进行摄像头预览和抓图。 首先,Xuggler是一个开源的Java库,主要用于处理音视频数据,包括编码、解码、转换以及流媒体处理等。在Java中,Xuggler能够...
在本文中,我们将深入探讨如何使用OpenCV库调用海康威视的网络摄像头,并解决可能出现的错误。OpenCV是一个强大的计算机视觉库,被广泛应用于图像处理和机器学习任务。而海康威视是知名的安防监控设备制造商,其网络...
【Android浏览器WebView与JS交互及HTML5调用摄像头拍照】\n\n在移动开发中,Android的WebView组件常被用于加载HTML5页面,实现类似原生应用的功能。WebView是Android系统提供的一种内置浏览器控件,它能够加载和显示...
在移动设备上,我们常常依赖内置摄像头进行拍照、录像等操作。然而,随着技术的发展,用户对于更高级别、功能更丰富的摄像头需求日益增长,这催生了Android外置USB摄像头的应用。本文将深入探讨如何在Android平台上...
【标题】"jsp flash 摄像头源码下载"涉及的是在Web开发中使用Java Server Pages (JSP) 和Adobe Flash技术实现摄像头功能的源代码。这一组合允许开发者在网页上集成摄像头交互,比如拍照、录像等。 【描述】"jsp+...