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



    }




    主站蜘蛛池模板: 猫咪免费人成网站在线观看| 叮咚影视在线观看免费完整版| 四虎精品视频在线永久免费观看| 国产成人无码综合亚洲日韩| aa级毛片毛片免费观看久| 精品亚洲一区二区三区在线观看| 国产成人亚洲综合在线| 国产在线a不卡免费视频| 精品特级一级毛片免费观看| 亚洲电影日韩精品| 国产精品青草视频免费播放| 亚洲精品无码不卡在线播HE| 久久久久久久岛国免费播放| 亚洲毛片基地日韩毛片基地| 黄色片在线免费观看 | 亚洲高清国产拍精品26U| 国产一区二区三区免费观看在线| 亚洲精品乱码久久久久久 | 特黄特色的大片观看免费视频| 亚洲精品视频久久久| 精品视频在线免费观看| 亚洲第一香蕉视频| 免费看又爽又黄禁片视频1000| 狠狠热精品免费观看| 久久精品国产亚洲AV果冻传媒 | 日本特黄特黄刺激大片免费| 无遮挡免费一区二区三区| 亚洲人成无码网站| 福利免费观看午夜体检区 | A级毛片成人网站免费看| 亚洲天堂视频在线观看| 成人免费在线视频| 一级毛片aaaaaa视频免费看| 亚洲视频一区调教| 日本一道在线日本一道高清不卡免费| 国产日韩精品无码区免费专区国产 | 女人18毛片a级毛片免费视频| 深夜福利在线视频免费| 久久亚洲国产精品| 成在线人永久免费视频播放| 久久国产免费观看精品|