[Java]如何產生Qrocde二維條碼?

QRCode二維條碼,是Quick Response Code縮寫,來自日本的國際二維條碼標準,是在1994年由日本Denso-Wave公司所發明的,此公司並保有版權但並不行使版權,所以在使用QRCode上並沒有版權上的問題。QRCode的應用像是購物消費、資料查詢、名片交換等等,在日本使用上是十分常見的,而台灣在近幾年也開始流行了起來。

更詳細的QRCode介紹可以參考Wiki QR碼或是 行動條碼 / 二維碼 / Mobile Barcode / QRCode

要利用Java來產生QRCode可以使用swetake所開放出來的原始碼http://www.swetake.com/qr/index-e.html,有php、ruby及Java等版本,下載點qrcode_java0.50beta10.tar.gz ,下載後解壓縮,可以直接把lib目錄下的QRcode.jar直接引用到程式classpath裡就可以了,或著把所有src目錄裡的java檔copy到專案source目錄裡也可。

qrcode壓縮檔

Eclipse的配置如下圖

Eclipse內的配置圖




原始碼下載

如何使用swetake來產生QRCode,主要的程式碼如下:

此程式主要在產生QRCode的方塊內容,其中字串str為要放入二維條碼內的資料,如果需要輸出成檔案格式則可使用return後面所保留的程式碼使用ImageIO.write來寫入檔案。

此程式是產生一個QRCode圖型的BufferedImage,再把BufferedImage資料利用MediaTracker載入(Applet程式一定要使用此方法,Application則可用可不用),然後利用paint函數把圖檔drawImage到JPanel上去。

結果畫面:

QRCodeFrame

 

相關資料:

  1. QRコード
  2. Java QR Code Open Source Decoder
  3. QR2DBarCode for Mobile
  4. 行動上網聯盟

產生QRCode(EnCode)網站有:

  1. kaywa
  2. QuickMark (可編4種碼:QuickMark、QRCode、Datamatrix Mobile、中移QR碼)
  3. Online QR Code Generator

解讀QRCode(DeCode)網站或設備:

  1. 手機版QR碼解碼軟體
  2. QR Code Reader Windows版/Moblin版/Android版 QR碼及漢信碼解碼軟體下載

21 comments on “[Java]如何產生Qrocde二維條碼?

  1. 請問我想請教,關於所附的範例檔案,
    當我import 到 Eclipse時,裡面的中文註解都是亂碼,請問我該如何處理?

    • 是有幾個方法
      一.
      1.利用notepad++等可開啟utf8編碼的文字編輯器
      2.開啟java或jsp檔,複製內容(應該中文正確)貼到Eclipse編輯內容裡
      有點呆,可是很實用,建議用這種

      二.改變程式編碼
      1.jsp的話可利用文件上方的contentType="text/html; charset=UTF-8"
      pageEncoding="UTF-8" 改成big5等編碼,再重開程式
      (幾乎不太可能有做用)
      2.選擇程式按右鍵選Properties在Resource 的Text File Encode選MS950或是UTF-8或BIG5(我也忘了我程式設成那種編碼了)

      等等等
      第二種方式也可試看看把整個專案的編碼改了

  2. 您好,我想請問,為何我直接複製版大您的Code,卻無QRcode的圖示產生。
    有JFrame視窗跳出,但只是空白視窗,白色的background。
    我有在paint方法中檢測image的null值,顯示是無NULL。
    感謝抽空給予解惑。

    • 我把原始檔的下載連結修好了
      你先下載原始檔看看
      如果還有問題再請告知
      如果可以跟我講Exception是什麼那就更好了

  3. 你好,請問如果要設定讀取出來的文字是什麼要怎麼設定?
    例如:當解碼的文字是"123",則進行下一步
    這樣怎麼做?

  4. 不好意思想請問一下,
    我把這個範例程式在eclipse匯入之後要執行
    可是程式裡面沒有main
    所以不知道該怎麼樣產生JFrame出來
    所以想請問樓主該怎麼做

    謝謝你

  5. 你好.
    我想問一下,QRCODE有javascript寫的嗎??
    我上去了www.webqr.com 看到有sources,,但我不知道怎樣把decode那個連去php

  6. 請問一下,要怎嚜把lib目錄下的QRcode.jar引用到程式classpath裡,小弟剛接觸eclipse還不太懂,謝謝

  7. 可以問一下,字數的限制 要怎改,都只能產生一點點中文字,是lib裡面本來就提供不多嗎?

    我看到裡面有寫版本,去設定也是依樣耶

    • 算可以,也算不可以
      基本上他產生的大小會依內容及參數改變
      不過你可以自己把它縮成想要的大小,只要掃的到就好 

      • @yku,
        感謝大大的回覆. 我昨夜試了好久, 終於發現程式中的
        J*3+2.... 3是所有boolean正方形的邊長, 2是QRCode的外圍白色的寬度,
        所以如果式子中的3全部改為6的話, 產出的QRCode就會是原來的兩倍大,
        希望與你分享.

  8. 你好,我想請問有關QR CODE編碼的問題
    因為我也有在研究QR CODE這方面,
    但是還是不太了解reed-solomon code是如何編碼的
    我目前了解的是先將訊息轉換成二進制後會得到一串111011...........01011,
    然後每八個位元一組,之後應該是要做reed-solomon code的編碼
    但我還是不太了解他編碼的方式及步驟或是使用的參數....等等
    希望大大能替我解惑..謝謝!!

2 Pings/Trackbacks 於 "[Java]如何產生Qrocde二維條碼?"

發表迴響