



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
import javax.swing.*;import javax.swing.event.*;importjava.io.*;import javax.media.*;import javax.media.format.*;import javax.media.util.*;import javax.media.control.*;import tocol.*;import java.util.*;import java.awt.*;import java.awt.image.*;import java.awt.event.*;import com.sun.image.codec.jpeg.*;public class SwingCapture extends Panel implements ActionListener public static Player player = null; public CaptureDeviceInfo di = null; public MediaLocator ml = null; public JButton capture = null; public Buffer buf = null; public Image img = null; public VideoFormat vf = null; public BufferToImage btoi = null; public ImagePanel imgpanel = null; public SwingCapture()swing外观风格。 setLayout(new BorderLayout();设置布局,BorderLayout()一种多层面板。 setSize(320,550);设置面板大小 imgpanel = new ImagePanel();相片图片容器 capture = new JButton(Capture);照相按扭 capture.addActionListener(this);监听这个按扭 /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);增加到当前的布局南边到组件容器 add(capture,BorderLayout.CENTER); 增加到当前的布局中间到组件容器 add(imgpanel,BorderLayout.SOUTH); 增加到当前的布局北边到组件容器 catch (Exception e) e.printStackTrace(); public static void main(String args) Frame. f = new Frame(SwingCapture);创建一个貼画面 SwingCapture cf = new SwingCapture();创建一个容器 f.addWindowListener(new WindowAdapter() 给java做的图形界面添加关闭事件的时候,使用了WindowAdapter这个类 public void windowClosing(WindowEvent e) playerclose(); System.exit(0);); f.add(Center,cf);向frame容器里输入swing风格中间大小帖的图片 f.pack();打包放进容器 f.setSize(new Dimension(320,550);设定规格大小 f.setVisible(true); 显示一个Frame帖(没保存前先显示) public static void playerclose() player.close(); player.deallocate();停止播放器后必须释放内存中的资源 public void actionPerformed(ActionEvent e)行为监听 JComponent c = (JComponent) e.getSource();创建一个绘画对像 if (c = capture)按拍照后 / Grab a frame FrameGrabbingControl fgc = (FrameGrabbingControl)从视频轨迹中抽取当前帧对像 player.getControl(javax.media.control.FrameGrabbingControl);获取当前祯 buf = fgc.grabFrame();抓下来的图片放在buffer的中 / Convert it to an image btoi = new BufferToImage(VideoFormat)buf.getFormat();取得一个视频格式对像 img = btoi.createImage(buf); 转化流格式为图片格试 / show the image imgpanel.setImage(img);引用imgpanel面板显示图片 / save image saveJPG(img,c:test.jpg);保存图片到本地硬盘 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); 绘画图形 public static void saveJPG(Image img, String s)保存图片 BufferedImage bi = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_RGB);从buf中取得图片对像 Graphics2D g2 = bi.createGraphics();取得绘画图形工具 g2.drawImage(img, null, null); 绘画图形 FileOutputStream ut = null;创建存放文件流对像 try ut = new FileOutputStream(s); 创建存放指定文件流路经对像 catch (java.io.FileNotFoundException io) System.out.println(File Not Found); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); 创建一个和指定输出流关联的JPEGImageEncoder对象 JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi); 此方法根据指定的压缩率浮点值 param.setQuality(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年国网东北分部高校毕业生招聘(第二批)笔试参考题库附带答案详解
- 2025山东东营众邦人力资源有限责任公司招聘3人笔试参考题库附带答案详解
- 2025四川绵阳绵州酒店有限公司招聘客户经理等勤杂岗位31人笔试参考题库附带答案详解
- 2025中铁工程装备集团郑州招聘10人(河南)笔试参考题库附带答案详解
- 地铁乘客安全认知培训课件
- 地质野外安全培训课件
- 固定资产概述课件
- 回顾拓展七课件
- 回转窑煅烧操作课件
- 地球在哭泣课件
- 电缆沟及盖板作业指导书培训课件
- GB/T 19867.6-2016激光-电弧复合焊接工艺规程
- GB/T 19478-2018畜禽屠宰操作规程鸡
- 三级教育考试卷(焊工)答案
- 无生上课课堂教学评价标准
- 深圳低压电工作业-实际操作培训课件-科目四-作业现场应急处理
- 植物生理学第十三章植物的逆境生理课件
- 中控岗位培训课件
- 宾馆酒店前台责任书
- 2.2 第2课时 基本不等式的综合应用(课件)高一数学(人教A版2019必修第一册)
- 勿忘国耻教学课件
评论
0/150
提交评论