Java调用摄像头并拍摄保存。

找到一篇关于java调用硬件(摄像头),一篇挺有意思的文章,索性转一下:

————————————————————————————————————-

转自:http://www.usnews.com/education

———————————————————————————————————————————–

首先到sun下载最新的jmf,然后安装。http://java.sun.com/products/java-media/jmf/index.jsp

然后,说一下需求

1. 用摄像头拍照

2. 在文本框输入文件名

3. 按下拍照按钮,获取摄像头内的图像

4. 在拍下的照片上有一红框截取固定大小的照片。

5. 保存为本地图像为jpg格式,不得压缩画质

技术关键,相信也是大家最感兴趣的部分也就是如何让一个摄像头工作,并拍下一张照片了。

————————————————————————————————————–

利用jmf,代码很简单:

//利用这三个类分别获取摄像头驱动,和获取摄像头内的图像流,获取到的图像流是一个swing的component组件类

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();

}

接下来就是点击拍照,获取摄像头内的当前图像。

代码也是很简单:

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);

}

保存图像的就不多说了,以下为示例代码

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”);

}

————————————————————————————————————-http://blog.csdn.net/china_lzn/article/details/7553552

java调用摄像头保存到图库_Java调用摄像头并拍摄保存相关推荐

  1. java调用接口实现的方法_java调用接口的实现方法

    java调用接口的实现方法 发布时间:2020-06-29 11:08:46 来源:亿速云 阅读:78 作者:Leah 本篇文章给大家分享的是有关java调用接口的实现方法,小编觉得挺实用的,因此分享 ...

  2. java本地方法出现问题怎么办_Java调用本地方法又是怎么一回事

    JNI JNI即Java Native Interface,它能在Java层实现对本地方法的调用,一般本地的实现语言主要是C/C++,其实从虚拟机层面来看JNI挺好理解,JVM主要使用C/C++ 和少 ...

  3. java调用kafka接口发送数据_Java调用Kafka生产者,消费者Api及相关配置说明

    本次的记录内容包括: 1.Java调用生产者APi流程 2.Kafka生产者Api的使用及说明 3.Kafka消费者Api的使用及说明 4.Kafka消费者自动提交Offset和手动提交Offset ...

  4. java 不等待 视频转码_java调用ffmpeg,mencoder进行视频转换,读取时长等

    以前做的一个基于ffmpeg的视频格式转换的程序,现在抽空整理一下,很多地方都是从别的大神那借鉴的,只是把自己的觉得有用的,对别人有帮助的拿出来分享分享,下面是代码 package video; im ...

  5. java 调用kettle job 传参_java调用kettle向job(任务)和transformation(转换)传递参数实例...

    虽然网上文章有说java可以传递参数给kettle,不过只找到了传递参数给转换的文章,没有讲参数传递给job,kettle中如何使用java传递的参数.今天就以上问题,一并共享. /** * 本测试类 ...

  6. java 使用7z进行解压_java调用7zip解压压缩包的实例

    前言 最近的项目中需要用到解压缩包的功能,客户给出的压缩包的格式主要是rar和zip,因此就打算使用java调用7zip的命令行进行解压文件,本文主要记录一下实现的过程以及其中遇到的问题. 7zip命 ...

  7. Java调用MySQL并返回数据_Java调用MySQL存储过程并获得返回值的方法

    本文实例讲述了Java调用MysqL存储过程并获得返回值的方法.分享给大家供大家参考.具体如下: private void empsInDept(Connection myConnect,int de ...

  8. java openurl不弹出新页面_Java调用浏览器打开指定页面的5种方法(最全)

    package com.xbz; import java.awt.*; import java.lang.reflect.Method; import java.net.URI; import jav ...

  9. java调用包中的类_java调用另一个包中的类的方法

    java调用另一个包中的类的方法 发布时间:2020-05-18 15:04:40 来源:亿速云 阅读:199 作者:小新 今天小编给大家分享的是java调用另一个包中的类的方法,相信很多人都不太了解 ...

最新文章

  1. 明星居然来我们宜昌保利时代拍戏——电影《被光抓走的人》
  2. Request 分别获取具有相同 name 属性表单元素值—— 怀念 Classic ASP (转自博客园)
  3. T-SQL里数据库工程师都不知道的秘密之SQL Server自定义函数UDF
  4. Microsoft Visual Studio 2010 破解下载!
  5. 18-mysql-数据类型
  6. Visual C++ 设置适合自己的解决方案目录结构
  7. Python计算从n个元素中任选i个的组合数C(n,i)
  8. 兼容浏览器的insertAdjacentHTML
  9. 笔记本如何查看mac地址
  10. 关于断点续传的那些事
  11. QT学习笔记(一)——QT基础
  12. android自定义剪切板,Android10适配之剪切板
  13. 全球三大计算机病毒爆发事件,全球爆发勒索病毒 十大恐怖电脑病毒排行榜(3)...
  14. 考研英语(四)——名词性从句
  15. python简易版成绩管理系统_Python学生成绩管理系统简洁版
  16. 微星性能测试软件,MSI Kombustor
  17. 火柴人生存挑战2html5游戏在线玩,火柴人生存挑战
  18. office卸载后无法重装终极解决办法
  19. 编写函数求两个数的最大公约数,采用递归法计算两数的最大公约数。
  20. VLC 推流的简单设置

热门文章

  1. php 程序发送谷歌邮件
  2. 金山解读何为真正“安全在云端”
  3. PPT沙龙培训——By超远
  4. 多线程高速下载百度云
  5. python百度贴吧图片爬取
  6. html5单屏滚动页面案例,20个精巧走心的单页滚动网页设计案例
  7. AS400如何检查谁删除了文件
  8. 使用PE安装Win11简单教程
  9. Vim插件EasyGrep使用简介
  10. ictclas java版_10分钟开始使用ICTCLAS Java版