<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午夜福利一片免费看久久| 亚洲视频免费在线看| 俄罗斯极品美女毛片免费播放| 亚洲国产精品久久久久婷婷软件| 亚洲第一街区偷拍街拍| 久久久久免费精品国产小说| 亚洲电影国产一区| 免费人成网站永久| 免费视频中文字幕| 亚洲视频欧洲视频| 成人国产精品免费视频| 日韩一级在线播放免费观看| 亚洲国产成人精品电影| 国产免费拔擦拔擦8X高清在线人| 亚洲高清无码在线观看| 亚洲大码熟女在线观看| 免费不卡中文字幕在线| 国产精品免费视频观看拍拍| 亚洲国产a∨无码中文777| jyzzjyzz国产免费观看| 亚洲s色大片在线观看| 一级特黄录像视频免费| 国产精品冒白浆免费视频| 最新亚洲精品国偷自产在线| 久久九九兔免费精品6| 亚洲精品无码不卡| 99在线视频免费观看视频 | 亚洲中文字幕无码爆乳AV| 亚洲.国产.欧美一区二区三区| 成人影片麻豆国产影片免费观看 | 日本一区午夜艳熟免费| 亚洲国产精品碰碰| 国产va在线观看免费| 国产精品久久久亚洲| 亚洲免费黄色网址| 羞羞视频网站免费入口| 国产人妖ts在线观看免费视频| 亚洲AV无码专区国产乱码不卡|