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

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

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

    程序人生

    在Java中摸爬滾打的日子

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      6 Posts :: 1 Stories :: 19 Comments :: 0 Trackbacks
    概述
        條碼解析在現在市場上有很多的產品,且在各類商場也隨處可見其應用的蹤影,如超市的收銀處。條碼槍跟條碼數據采集器也是比較常見的。不過這些硬件都需要專門的采購,像一般的人開發人員或普通用戶而言,很少接觸這些硬件,對其工作原理也是不得而知。
        前段時間一朋友購買了一臺G4的手機,并且為其裝上了一個通過手機攝像頭對條碼拍照后自動解析出條碼信息的軟件,我覺得這功能挺不錯,相當的實用。比如想查詢某商品在網上的相關信息,如果這個商品有條碼的話,那可以通過這個功能直接解析出商品的基本信息,再通過google或其他的搜索工具在網上一搜就可以。還有比如對那些二維碼的條碼,通過手機就可以知道其具體的一些信息,比如實名的火車票。
        這么方便的工具,那如果我的手機不支持安裝這類應用程序呢,但我有自己的個人電腦可用,那能否在個人電腦上跑一個類似的程序也能完成這樣的任務呢?當然,這些在電腦上就更加方便實現了。
        接下來我就貼出前段時間實現的一個這樣的應用程序,供大家參考。

    解說bcvp
        在介紹這個應用之前,我們需要了解一下com.google.zxing這個開源項目,ZXing(發音類似Zebra crossing)是Java的開源多格式1D/2D條碼圖像處理庫,目的是使用內置在手機上的攝像頭拍照并對條碼進行解碼,而不必與服務器通訊,它被用于Android系統。但同樣可以應用J2SE、J2EE等領域。項目地址:http://code.google.com/p/zxing/。這項目的使用相當的簡單,將zxing的core.jar跟javase.jar兩個包添加到項目的Libraries下面就行,其調用也相當的簡單,如下面根據圖片解碼的方法:
    /**
         * 獲取解碼后的文本內容
         * 
    @param image 用來解析的圖片對象
         * 
    @return
         
    */
        
    public static String getDecodeText(BufferedImage image) {
            
    if (image == null) {
                
    return null;
            }
            BinaryBitmap bitmap 
    = new BinaryBitmap(new HybridBinarizer(
                    
    new BufferedImageLuminanceSource(image)));
            Result result;
            
    try {
                result 
    = mfr.decode(bitmap);
            } 
    catch (ReaderException re) {
                
    return re.getMessage();
            }
            
    return result.getText();
        }
        如果項目中有用到Maven的話,則只需要在項目的pom.xml文件中加入其依賴就可,但因為這個項目在Maven2的公共倉庫中沒有,因此需要下載其源碼到本地運行Maven的相關命令編譯安裝到本地Maven倉庫或者作業環境的公共Maven倉庫。下面是我這個程序的項目結構:

        其中除了用到ZXing這個項目會,還用到了JMF框架,JMF是Java媒體框架,該核心框架支持不同媒體(如:音頻輸出和視頻輸出)間的時鐘同步。它是一個標準的擴展框架,允許用戶制作純音頻流和視頻流。編譯環境中需要添加JMF框架相關的包到項目的Libraries中。相關JMF的資料請參見參考資料。

    結構說明
        audio是一個音頻播放器的包,可以當成是工具類,也可以應用于音頻播放器,只不過只支持有限的音頻文件。這里需要利用這個來當視頻頭捕獲到條碼時,發出聲音提示用戶。
        impl是bcvp項目的默認實現包,你也可以添加自己的實現,只需要繼承BcvpProcesser類,實現如下三個方法即可:
    /**
         * 獲取解析的文本內容
         * 
    @param image
         * 
    @return
         
    */
        
    public abstract String getDecodeText(Image image);
        
        
    /**
         * 獲取需要解析的圖片
         * 
    @return
         
    */
        
    public abstract Image getToDecodeImage();
        
        
    /**
         * 成功后的執行
         * 
    @param decodeText
         * 
    @param image
         
    */
        
    public abstract void afterSuccessToDoing(String decodeText, Image image);

        util是一個bcvp的工具包。
        zxing是封裝ZXing項目提供統一調用的包。
        BcvpProcesser是bcvp核心處理器,你可以像BcvpProcesserTest.java中那樣調用來使用BcvpProcesser來進行工作。

    下載
        ideawork-bcvp.zip

    注意
        1、當啟動此程序的時候,需要確保PC上已經添加有視頻頭設備。
        2、運行環境依賴ZXing的core.jar跟JMF的jmf.jar,當然還有logger相關的包,項目POM文件中有相關依賴信息。
        3、當程序啟動后,會打開一個Java Swing窗口,在把印有條碼的物件對準視頻頭時,盡量使之在視頻窗口中看得比較清楚(因此這也是效率不高的原因)。

    參考資料
        ZXing項目地址:http://code.google.com/p/zxing/
        JMF官方地址:http://java.sun.com/products/java-media/jmf/index.jsp
        JMF中文資訊:http://www.cn-java.com/www1/bbs/viewthread.php?action=printable&tid=16228&sid=nmOj9O
    posted on 2010-05-23 23:26 瀟湘振宇 閱讀(3633) 評論(0)  編輯  收藏 所屬分類: 示例解說

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


    網站導航:
     
    主站蜘蛛池模板: 香蕉视频在线观看免费| 亚洲精品美女久久久久久久| 一本到卡二卡三卡免费高| 亚洲影院在线观看| 精品四虎免费观看国产高清午夜| 国产亚洲日韩在线三区| 一级毛片免费毛片毛片| 色久悠悠婷婷综合在线亚洲| 一级做a爱过程免费视| 亚洲午夜久久久久妓女影院| 在线毛片片免费观看| 色拍自拍亚洲综合图区| 在线视频免费观看爽爽爽| 亚洲av午夜精品无码专区| 午夜成人免费视频| 免费无遮挡无遮羞在线看| 亚洲女同成av人片在线观看| 一级特黄aa毛片免费观看| 亚洲制服丝袜第一页| 国产精品久久香蕉免费播放| 一级A毛片免费观看久久精品 | 亚洲视频在线观看免费| 亚洲欧洲视频在线观看| 午夜成人免费视频| 二区久久国产乱子伦免费精品 | 区久久AAA片69亚洲| 日韩中文字幕免费视频| 亚洲首页国产精品丝袜| 全亚洲最新黄色特级网站 | 亚洲国产天堂久久综合| 精品国产免费一区二区三区香蕉| 亚洲欧洲国产精品你懂的| 欧美男同gv免费网站观看| 免费一级特黄特色大片| 亚洲人色婷婷成人网站在线观看| 16女性下面无遮挡免费| 色九月亚洲综合网| 久久国产亚洲观看| 日日夜夜精品免费视频| 中文字幕无码日韩专区免费 | 日韩成人毛片高清视频免费看|