`
rain_2372
  • 浏览: 684188 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java来调用电脑视频摄像头拍照进行截图

    博客分类:
  • java
阅读更多
packagecom.pengo.capture;
  
importjava.awt.BorderLayout;
importjava.awt.Dimension;
importjava.awt.Graphics2D;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.image.BufferedImage;
importjava.io.File;
importjava.io.IOException;
importjavax.imageio.ImageIO;
importjavax.media.MediaLocator;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
importjavax.swing.JTextField;
importnet.sf.fmj.ui.application.CaptureDeviceBrowser;
importnet.sf.fmj.ui.application.ContainerPlayer;
importnet.sf.fmj.ui.application.PlayerPanelPrefs;
  
publicclassCameraFrameextendsJFrame{
    privatestaticintnum =0;
    publicCameraFrame()throwsException{
        this.setTitle("摄像头截图应用");
        this.setSize(480,500);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        finalJPanel cameraPanel =newJPanel();
        this.getContentPane().setLayout(newBorderLayout());
        this.getContentPane().add(cameraPanel, BorderLayout.CENTER);
        ContainerPlayer containerPlayer =newContainerPlayer(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 =newPlayerPanelPrefs();
        containerPlayer.setMediaLocation(locator.toExternalForm(), prefs.autoPlay);
          
        JPanel btnPanel =newJPanel(newBorderLayout());
        finalJTextField path =newJTextField("E:\\camera");
        path.setColumns(30);
        btnPanel.add(path, BorderLayout.WEST);
        JButton okBtn =newJButton("截图");
        okBtn.addActionListener(newActionListener(){
             publicvoidactionPerformed(ActionEvent e){
                 Dimension imageSize = cameraPanel.getSize();
                    BufferedImage image =newBufferedImage(imageSize.width,
                            imageSize.height, BufferedImage.TYPE_INT_ARGB);
                    Graphics2D g = image.createGraphics();
                    cameraPanel.paint(g);
                    g.dispose();
                    try{
                 
                        String filePath = path.getText();
                        File file =newFile(filePath);
                        if(file.exists() ==false){
                            file.mkdirs();
                        }
                        ImageIO.write(image,"png",newFile(file.getAbsolutePath() +"/"+ num +".png"));
                        num++;
                    }catch(IOException ex) {
                        ex.printStackTrace();
                         
                    }
             }
        });
        btnPanel.add(okBtn, BorderLayout.EAST);
        this.getContentPane().add(btnPanel, BorderLayout.SOUTH);
    }
      
    publicstaticvoidmain(String[] args)throwsException{
        CameraFrame camera =newCameraFrame();
        camera.setVisible(true);
    }
}
转:
http://www.ablanxue.com/prone_3338_1.html
分享到:
评论
1 楼 bobo22 2016-06-23  
importnet.sf.fmj.ui.application.CaptureDeviceBrowser;
importnet.sf.fmj.ui.application.ContainerPlayer;
importnet.sf.fmj.ui.application.PlayerPanelPrefs;

去哪里弄这几个jar包

相关推荐

    java调用电脑摄像头拍照

    以上步骤是基础的Java调用摄像头拍照的流程。如果需要更高级的功能,比如预览、调整摄像头参数或者处理实时视频流,JavaCV库提供了丰富的API供开发者使用。同时,考虑到跨平台兼容性,确保在不同操作系统上测试代码...

    java调用摄像头拍照

    在Java编程环境中,调用摄像头...总的来说,Java调用摄像头拍照涉及到对多媒体框架的理解和使用,以及可能的权限管理。无论是通过JMF还是JavaFX,都需要对Java的IO和多线程有一定的掌握,以确保程序的稳定性和性能。

    java调用电脑摄像头拍照例子

    Java调用电脑摄像头拍照实现例子,运用的是开源项目webcam-capture实现的;详情看这里:https://blog.csdn.net/qq_22078107/article/details/85927626

    java参照webcam-capture调用摄像头拍照

    Java调用摄像头拍照是计算机视觉应用中的一个常见需求,尤其在开发基于Web的应用时,例如视频会议、在线证件照拍摄等。本示例基于`webcam-capture`库,一个强大的Java库,允许开发者轻松地访问和控制电脑上的摄像头...

    java opencv 调用摄像头实现拍照及本地保存 支持上传FTP 路径配置

    本项目聚焦于使用Java和OpenCV库调用摄像头进行拍照,并将拍摄的照片保存到本地,同时支持通过FTP服务上传至远程服务器。下面将详细阐述这个过程中涉及的关键知识点。 1. **Java编程语言**: Java是一种广泛使用的...

    h5、js调用视频摄像头,录像,拍照(直接就可以用的)

    h5、js调用视频摄像头,录像,拍照(直接就可以用的)

    三、JAVA调用海康威视SDK实现摄像头本地存储

    在本文中,我们将深入探讨如何使用Java调用海康威视(Hikvision)的SDK来实现在本地存储摄像头的视频数据。海康威视作为全球知名的安防产品供应商,提供了丰富的SDK供开发者集成到自己的应用中,使得我们可以方便地...

    java Swing 中调用摄像头拍照源码(有说明)

    以下是对标题“java Swing 中调用摄像头拍照源码(有说明)”和描述的详细解释,以及相关知识点的深入探讨。 1. **Swing简介**: Swing是Java的GUI库,它基于Java Foundation Classes (JFC),提供了一套轻量级的...

    用java调用摄像头拍照源代码

    以上就是使用Java和JMF调用摄像头拍照的基本流程。需要注意的是,JMF在某些现代操作系统上可能支持不够完善,可能会遇到兼容性问题。另外,JMF的API较为复杂,使用起来可能有些困难。为了解决这些问题,开发者可以...

    java微信公众号调用手机摄像头拍照和本地相册

    java微信公众号调用手机摄像头拍照和本地相册,上传服务器,java微信公众号内部调用本地摄像头,web项目

    android调用前后置摄像头拍照

    以上就是Android调用前后置摄像头拍照的基本步骤。你可以根据实际需求进行扩展,比如添加闪光灯控制、设置拍照质量、裁剪图片等。这个`Android_Camera`压缩包文件可能包含了实现上述功能的完整代码示例,你可以参考...

    js调用本地摄像头拍照并上传到web服务器

    &lt;title&gt;JS调用摄像头拍照 拍照"&gt; &lt;video id="video" width="640" height="480" autoplay&gt;&lt;/video&gt; &lt;canvas id="canvas" width="640" height="480"&gt;&lt;/canvas&gt; document.getElementById('takePhoto')....

    JAVA OpenCv 同时打开多个USB摄像头 拍照

    总的来说,使用Java和OpenCV同时打开多个USB摄像头拍照涉及了Java编程、OpenCV库的使用、摄像头的读取和处理,以及可能的并发处理。理解这些知识点并熟练运用,将能实现高效稳定的多摄像头应用程序。

    基于Java代码的USB摄像头采集与显示

    JNI允许Java代码调用本地(C/C++)库,而libusb4java则提供了Java接口来操作USB设备,包括摄像头。 在USB摄像头采集过程中,我们需要识别并连接到USB摄像头设备。这通常涉及枚举USB总线上的设备,找到符合特定供应...

    多种方式ASP调用摄像头拍照并保存插件

    标题中的“多种方式ASP调用摄像头拍照并保存插件”是指在不同的Web开发环境中,如ASP、ASP.NET、JSP和PHP,实现调用用户电脑或服务器上的摄像头进行拍照,并将拍摄的照片保存到服务器的技术解决方案。这个插件可能...

    Android实现调用摄像头拍照与视频功能

    在 Android 应用开发中,调用摄像头拍照和视频功能是非常常见的场景,本文将对 Android 实现调用摄像头拍照与视频功能进行详细介绍。 一、应用场景 在 Android 开发过程中,有时需要调用手机自身设备的功能,例如...

    java调用摄像头实例

    本实例是关于如何使用Java调用摄像头的一个具体应用,通过集成Xuggler库来实现这一功能。Xuggler是一个强大的开源Java库,它允许开发者对音视频数据进行读取、编辑和写入操作。 首先,我们来了解一下Java调用摄像头...

    java swing opencv调用摄像头实现拍照及本地保存支持上传FTP路径配置

    在本文中,我们将深入探讨如何使用Java Swing和OpenCV库来调用摄像头,实现拍照功能,并将拍摄的照片本地保存以及支持上传至FTP服务器。通过理解并应用这些知识点,你可以创建一个用户友好的桌面应用程序,方便地...

    java 摄像头 拍照 程序 控制电脑摄像头拍照

    Java摄像头拍照程序是一种利用Java Media Framework (JMF) 或者其他相关库来访问并操作电脑摄像头,实现拍照功能的应用。JMF是Java平台上的多媒体框架,允许开发者处理音频、视频和流媒体数据。在这个程序中,我们将...

Global site tag (gtag.js) - Google Analytics