<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Keep Moving

    一個人倘若需要從思想中得到快樂,那么他的第一個欲望就是學習。
    隨筆 - 16, 文章 - 10, 評論 - 1, 引用 - 0
    數據加載中……

    java利用jmf實現拍照功能

    首先到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)//如果按下的是拍照按鈕 http://www.5a520.cn
    {
    FrameGrabbingControl fgc =(FrameGrabbingControl)player.getControl
    ("javax.media.control.FrameGrabbingControl");
    buf = fgc.grabFrame(); // 獲取當前禎并存入Buffer類 http://www.bt285.cn
    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);//不壓縮圖像 http://www.bt285.cn
    encoder.setJPEGEncodeParam(param);
    try
    {
    encoder.encode(bi);
    out.close();
    }
    catch (java.io.IOException io)
    {
    System.out.println("IOException");
    }

    已經申請將JWebCam建立為一個開源項目,放到GRO,大家發揮自己的想象力加入自己的代碼吧,比如拍攝視頻,添加圖像處理功能,等等

    posted on 2009-05-22 15:45 BruceLeey 閱讀(173) 評論(0)  編輯  收藏 所屬分類: 雜亂


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲国产精品成人AV在线| 亚洲国产精品乱码一区二区| 亚洲一区二区三区国产精华液| 一个人免费日韩不卡视频| 亚洲AV日韩AV永久无码绿巨人 | 2019中文字幕在线电影免费| 亚洲大尺度无码无码专区| 亚州免费一级毛片| 亚洲AV日韩精品久久久久久| 免费不卡在线观看AV| 亚洲人成电影福利在线播放 | 亚洲中文字幕无码亚洲成A人片| 国产电影午夜成年免费视频| 亚洲国产模特在线播放| 一区二区无码免费视频网站| 亚洲久热无码av中文字幕| 又黄又大又爽免费视频| ww在线观视频免费观看w| 亚洲春色在线视频| 精品熟女少妇av免费久久| 国产婷婷综合丁香亚洲欧洲| 日韩精品免费一区二区三区| 永久免费无码日韩视频| 久久久亚洲精品无码| 免费看国产成年无码AV片| 亚洲av无码专区亚洲av不卡| 亚洲综合精品网站在线观看| 国产va在线观看免费| 亚洲一区二区三区免费观看| 免费国产真实迷j在线观看| 成在线人免费无码高潮喷水| 亚洲理论片在线观看| 国产青草视频免费观看97| 国产永久免费高清在线| 国产亚洲国产bv网站在线| 亚洲欧洲无码AV电影在线观看| 亚洲国产精品免费观看| 一进一出60分钟免费视频| 亚洲毛片基地日韩毛片基地| 啊v在线免费观看| 麻花传媒剧在线mv免费观看|