麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Java > 正文

java實現攝像頭截圖功能

2024-07-14 08:42:34
字體:
來源:轉載
供稿:網友

本文為大家分享了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攝像頭截圖

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲aⅴ免费在线观看 | 国色天香综合网 | 一级电影在线观看 | 久久久三区 | 在线1区 | 性爱视频在线免费 | 九色一区二区 | 欧美日韩一区三区 | av手机在线免费播放 | 羞羞草视频 | 欧美18—19sex性护士中国 | av免费av| 国产精品18久久久久久久 | 国产品久久 | 在线播放免费视频 | 国产亚洲精品久久久久5区 综合激情网 | 一区免费| 久久久久国产一区二区三区不卡 | 看中国一级毛片 | 性高湖久久久久久久久aaaaa | 免费在线观看成人网 | 看免费的毛片 | 国产精品视频yy9299一区 | 欧美精品免费一区二区三区 | 国产精品一区99 | 欧美一级淫片免费播放口 | 亚洲字幕av | 欧美激情首页 | 欧美日韩在线播放 | 欧美特级一级毛片 | 中文字幕一区2区 | 中日无线码1区 | 国产一区二区三区在线观看视频 | 久久免费视频精品 | 伊人一二三四区 | 久久国产精品久久精品国产演员表 | 久久久久久艹 | 久久精品com| 精品久久久久久中文字幕 | av在线免费网址 | 免费的毛片|