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

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

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

    amp@java

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      99 隨筆 :: 0 文章 :: 228 評論 :: 0 Trackbacks

    二維條形碼比普通的條形碼能保存更多的信息,已經應用到很多領域里面。例如手機電影票,就是一個嵌在彩信里面的二維碼圖像。南航也推出了網上辦理登機牌業務,辦理完成之后往手機發送一條包含二維碼的彩信,到了機場就可以通過自助設備掃描二維碼,打印登機牌。
    然而,專業的二維碼掃描設備價格十分昂貴,最便宜的都在1000元以上,到淘寶上搜搜就知道了。借助Java和一個開源的庫,我們卻可以通過普通的網絡攝像頭實現相同的效果,成本只需要幾十塊。
    Open Source QR Code Library是一個開源的QR Code(二維條形碼的一種)生成和讀取的庫,官方網站為:http://qrcode.sourceforge.jp/,里面包含了生成和讀取QR Code的所有代碼,其中有個jmfexample就能實現通過攝像頭讀取QR Code,經過本人嘗試,幾十塊的普通攝像頭效果已經不錯了,一次讀取幾百字節都沒問題。
    使用這個庫的步驟如下:
    1、到其官方網站下載回來;
    2、到sun的網站下載JMF包并安裝;
    3、插上攝像頭,打開我的電腦,查看是否出現“USB視頻設備”,然后打開,看攝像頭工作是否正常
    4、運行JMF里面的JMF Registry程序,點擊“Detect Capture Devices”,查找視頻設備,查找到之后會在左邊的列表里出現“vfw:Microsoft WDM Image Capture (Win32):0”類似的設備,點擊就會在右邊出現其詳細信息,我的攝像頭是這樣的:
    Name = vfw:Microsoft WDM Image Capture (Win32):0

    Locator = vfw://0

    Output Formats---->

    0. javax.media.format.YUVFormat
    ? YUV Video Format: Size = java.awt.Dimension[width=640,height=480] MaxDataLength = 614400 DataType = class [B yuvType = 32 StrideY = 1280 StrideUV = 1280 OffsetY = 0 OffsetU = 1 OffsetV = 3

    1. javax.media.format.YUVFormat
    ? YUV Video Format: Size = java.awt.Dimension[width=160,height=120] MaxDataLength = 38400 DataType = class [B yuvType = 32 StrideY = 320 StrideUV = 320 OffsetY = 0 OffsetU = 1 OffsetV = 3

    2. javax.media.format.YUVFormat
    ? YUV Video Format: Size = java.awt.Dimension[width=176,height=144] MaxDataLength = 50688 DataType = class [B yuvType = 32 StrideY = 352 StrideUV = 352 OffsetY = 0 OffsetU = 1 OffsetV = 3

    3. javax.media.format.YUVFormat
    ? YUV Video Format: Size = java.awt.Dimension[width=320,height=240] MaxDataLength = 153600 DataType = class [B yuvType = 32 StrideY = 640 StrideUV = 640 OffsetY = 0 OffsetU = 1 OffsetV = 3

    4. javax.media.format.YUVFormat
    ? YUV Video Format: Size = java.awt.Dimension[width=352,height=288] MaxDataLength = 202752 DataType = class [B yuvType = 32 StrideY = 704 StrideUV = 704 OffsetY = 0 OffsetU = 1 OffsetV = 3

    注意,其中Output Formats都是javax.media.format.YUVFormat,而QR Code Library里默認的設備不是這種格式的,所以需要對源碼作一定的修改。

    5、用Eclipse打開QR Code Library的源碼,作出一些適當的修改:
    如果攝像頭是上面所說的只支持YUV格式,則需要修改jp.sourceforge.qrcode.example.jmf.camDataSource.java,把setMainSource函數里的
    VideoFormat vidformat = new VideoFormat(VideoFormat.RGB);
    修改為
    VideoFormat vidformat = new VideoFormat(VideoFormat.YUV);
    否則永遠也找不到攝像頭。

    6、把JMF包里的jmf.jar放到Classpath里
    7、執行jp.sourceforge.qrcode.example.jmf.jmfexample,搞定

    當然,由于源碼開放的,只要符合許可,你想怎么改都行,可以把它嵌入到某個應用程序里面,這個程序就具有了掃描QR Code的功能了。

    posted on 2009-04-02 16:22 amp@java 閱讀(5937) 評論(13)  編輯  收藏 所屬分類: Java common

    評論

    # re: 用JAVA做一個便宜好用的二維碼掃描器 2009-04-08 21:32 koma
    呵呵 性能是很差的我們2年前就測試了這個程序  回復  更多評論
      

    # re: 用JAVA做一個便宜好用的二維碼掃描器 2009-05-21 18:35 amp@java
    @koma
    呵呵,我覺得比專業的掃描儀還好用,可以連續掃
      回復  更多評論
      

    # re: 用JAVA做一個便宜好用的二維碼掃描器 2009-06-09 16:33 wu
    此程序開了幾分鐘,然后會屏幕一片空白,無法使用,請問博主是否遇到過這情況,如何解決?  回復  更多評論
      

    # re: 用JAVA做一個便宜好用的二維碼掃描器 2009-06-10 08:55 wu
    jmf開一陣子也是變黑,或許是我中星微攝像頭休眠了?  回復  更多評論
      

    # re: 用JAVA做一個便宜好用的二維碼掃描器 2009-06-10 13:55 wu
    確實是攝像頭問題,換了一個好了,打擾!  回復  更多評論
      

    # re: 用JAVA做一個便宜好用的二維碼掃描器 2009-06-13 16:56 shengshu
    @koma
    有沒有更好的介紹?!~  回復  更多評論
      

    # re: 用JAVA做一個便宜好用的二維碼掃描器[未登錄] 2009-07-24 11:34 蟲子
    那個包,能用來生成QR圖嗎??要怎么用???  回復  更多評論
      

    # re: 用JAVA做一個便宜好用的二維碼掃描器 2009-07-28 09:03 amplifier
    @蟲子
    不能生成,只能讀取
    生成QRCode的有另外的包,搜一下有很多  回復  更多評論
      

    # re: 用JAVA做一個便宜好用的二維碼掃描器[未登錄] 2009-09-16 16:04 seven
    請問讀取之后能不能把信息寫進數據庫?  回復  更多評論
      

    # re: 用JAVA做一個便宜好用的二維碼掃描器 2009-09-18 22:40 amplifier
    @seven
    當然可以,讀出來的都是文本,你想怎么處理都可以  回復  更多評論
      

    # re: 用JAVA做一個便宜好用的二維碼掃描器[未登錄] 2010-03-03 17:25 Fred
    我試過了基本上很難讀出來,用到現在就讀出過2回,中文而且有亂碼。攝像頭也是1000W像素的,非常清晰。

    能給個導出的jar嗎?ad#fengsage.cn 謝謝  回復  更多評論
      

    # re: 用JAVA做一個便宜好用的二維碼掃描器 2012-03-20 16:44
    運行找不到,
    Exception in thread "main" java.lang.NullPointerException
    at javax.media.Manager.createProcessor(Manager.java:663)
    at jmf.camDataSource.startProcessing(camDataSource.java:68)
    at jmf.jmfexample.<init>(jmfexample.java:18)
    at jmf.jmfexample.main(jmfexample.java:30)
    怎么回事啊,
    攝像頭沒事,JMF也沒事
      回復  更多評論
      

    # re: 用JAVA做一個便宜好用的二維碼掃描器[未登錄] 2012-03-23 11:42 a
    我試過了,不行,報錯,
    有做出來的嗎?求!!發一個
    465955146@qq.com  回復  更多評論
      

    主站蜘蛛池模板: 最好2018中文免费视频| 成人黄网站片免费视频| va亚洲va日韩不卡在线观看| 国产成人无码免费网站| 婷婷亚洲综合五月天小说 | 免费人成视频x8x8入口| 一区二区三区免费视频网站| 亚洲人成网站在线观看播放| 国内精自视频品线六区免费| 美女露隐私全部免费直播| 亚洲欧洲日韩国产综合在线二区| 一级毛片在线免费播放| 亚洲大香伊人蕉在人依线| 日本久久久免费高清| 亚洲欧洲免费视频| 色窝窝亚洲av网| 亚洲精品在线视频观看| mm1313亚洲精品无码又大又粗| 精品亚洲成a人在线观看| 亚洲AV无码精品无码麻豆| 女人张腿给男人桶视频免费版| 日韩亚洲不卡在线视频中文字幕在线观看| 丝瓜app免费下载网址进入ios | 亚洲精品午夜视频| 亚洲国产午夜中文字幕精品黄网站| 国产亚洲人成在线播放| 久久夜色精品国产噜噜亚洲AV| 一级成人a毛片免费播放| 亚洲国产精品无码中文lv| 77777_亚洲午夜久久多人| 亚洲欧洲日产国码一级毛片 | 国产一级淫片免费播放| 亚洲精品在线免费看| 免费精品国产自产拍在线观看| 亚洲午夜成人精品电影在线观看 | 午夜一级免费视频| 日韩在线不卡免费视频一区| 国产成人无码精品久久久久免费| 国产午夜亚洲不卡| 国产a不卡片精品免费观看| 麻豆视频免费播放|