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

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

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

    Keep Moving

    一個(gè)人倘若需要從思想中得到快樂(lè),那么他的第一個(gè)欲望就是學(xué)習(xí)。
    隨筆 - 16, 文章 - 10, 評(píng)論 - 1, 引用 - 0
    數(shù)據(jù)加載中……

    java利用jmf實(shí)現(xiàn)拍照功能

    首先到SUN下載最新的JMF,然后安裝。http://java.sun.com/products/java-media/jmf/index.jsp 

    然后,說(shuō)一下需求

    1. 用攝像頭拍照

    2. 在文本框輸入文件名

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

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

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

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

    利用JMF,代碼很簡(jiǎn)單:

    //利用這三個(gè)類分別獲取攝像頭驅(qū)動(dòng),和獲取攝像頭內(nèi)的圖像流,獲取到的圖像流是一個(gè)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();
    }

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

    代碼也是很簡(jiǎn)單:

     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(); // 獲取當(dāng)前禎并存入Buffer類 http://www.bt285.cn
    btoi = new BufferToImage((VideoFormat) buf.getFormat());
    img = btoi.createImage(buf); // show the image
    imgpanel.setImage(img);
    }

    保存圖像的就不多說(shuō)了,以下為示例代碼

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

    已經(jīng)申請(qǐng)將JWebCam建立為一個(gè)開源項(xiàng)目,放到GRO,大家發(fā)揮自己的想象力加入自己的代碼吧,比如拍攝視頻,添加圖像處理功能,等等

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


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲色欲www综合网| 永久亚洲成a人片777777| 亚洲国产美女视频| 久久国产精品成人片免费| 亚洲一区二区三区日本久久九| APP在线免费观看视频| 亚洲阿v天堂在线| 久久永久免费人妻精品| 亚洲精品高清视频| 中文字幕视频免费| 2020国产精品亚洲综合网| 欧洲精品免费一区二区三区| 国产精品亚洲综合网站| 亚洲欧洲日本在线| 三级网站免费观看| 337p日本欧洲亚洲大胆色噜噜| av无码国产在线看免费网站| 亚洲综合精品伊人久久| 亚洲第一区精品观看| 最近免费中文字幕中文高清 | 69式国产真人免费视频| 亚洲av专区无码观看精品天堂| 9久9久女女免费精品视频在线观看| 亚洲色www永久网站| 亚洲精品色婷婷在线影院| 国产成人无码区免费网站| 亚洲人成影院午夜网站| 国产一级高清免费观看| 久久青青草原国产精品免费| 亚洲中文字幕久在线| 亚洲国产午夜福利在线播放| 麻豆成人久久精品二区三区免费| 亚洲看片无码在线视频| 国产中文在线亚洲精品官网| 9420免费高清在线视频| 国产av无码专区亚洲av毛片搜| 亚洲av日韩av天堂影片精品| 日韩一区二区在线免费观看| 国产成人AV免费观看| 亚洲欧美精品午睡沙发| 国产V亚洲V天堂A无码|