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

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

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

    一切皆可抽象

    大而無形 庖丁解牛 厚積薄發(fā) 滌慮玄覽
       ::  ::  ::  ::  :: 管理
    首先到SUN下載最新的JMF,然后安裝。http://java.sun.com/products/java-media/jmf/index.jsp



    然后,說一下需求



    1. 用攝像頭拍照



    2. 在文本框輸入文件名



    3. 按下拍照按鈕,獲取攝像頭內(nèi)的圖像



    4. 在拍下的照片上有一紅框截取固定大小的照片。



    5. 保存為本地圖像為jpg格式,不得壓縮畫質(zhì)







    技術(shù)關(guān)鍵,相信也是大家最感興趣的部分也就是如何讓一個(gè)攝像頭工作,并拍下一張照片了。



    利用JMF,代碼很簡單:







    //利用這三個(gè)類分別獲取攝像頭驅(qū)動(dòng),和獲取攝像頭內(nèi)的圖像流,獲取到的圖像流是一個(gè)Swing的Component組件類



    public static Player player = null;



    private CaptureDeviceInfo di = null;



    private MediaLocator ml = null;







    //文檔中提供的驅(qū)動(dòng)寫法,為何這么寫我也不知:)



    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();



    }








    接下來就是點(diǎn)擊拍照,獲取攝像頭內(nèi)的當(dāng)前圖像。



    代碼也是很簡單:







    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)//如果按下的是拍照按鈕



    {



    FrameGrabbingControl fgc =



    (FrameGrabbingControl) player.getControl(



    "javax.media.control.FrameGrabbingControl");



    buf = fgc.grabFrame(); // 獲取當(dāng)前禎并存入Buffer類



    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);//不壓縮圖像



    encoder.setJPEGEncodeParam(param);



    try



    {



    encoder.encode(bi);



    out.close();



    }



    catch (java.io.IOException io)



    {



    System.out.println("IOException");



    }




    主站蜘蛛池模板: 99精品视频在线视频免费观看 | 亚洲精品tv久久久久久久久久| 亚洲神级电影国语版| 日本卡1卡2卡三卡免费| 亚洲色婷婷综合久久| 女同免费毛片在线播放| 久久99国产亚洲精品观看| 久久久免费的精品| 亚洲精品自在线拍| 西西大胆无码视频免费| 亚洲人片在线观看天堂无码| 精品国产免费观看| 又大又硬又粗又黄的视频免费看 | 男女猛烈激情xx00免费视频| 免费永久看黄在线观看app| 久久精品国产亚洲av瑜伽| 成人亚洲网站www在线观看| 国产男女爽爽爽免费视频 | 亚洲免费观看视频| 97精品免费视频| 亚洲中字慕日产2021| 国产又大又长又粗又硬的免费视频| 看全免费的一级毛片| 亚洲综合AV在线在线播放| 99精品国产成人a∨免费看| 亚洲男人天堂2022| 在线看片无码永久免费aⅴ| 一级视频免费观看| 亚洲免费精彩视频在线观看| 中国在线观看免费高清完整版 | 亚洲AV无码专区在线观看成人| 亚洲国产成人久久精品99| 日本免费人成网ww555在线| 亚洲av永久无码精品天堂久久| 四虎影永久在线高清免费| 国产自国产自愉自愉免费24区| 亚洲无成人网77777| 亚洲av成人一区二区三区在线观看 | 91国内免费在线视频| 亚洲av一本岛在线播放| 国产精品亚洲二区在线观看|