- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
南台科技大学嵌入式系统期末报告题目QRCode二维条码产生&解码
南台科技大學
嵌入式系統期末報告
題目:QR Code二維條碼產生&解碼器
授課老師:侯安桑 教授
班級:碩研電子一甲
學號:m9830108
姓名:蘇郁文
一、QR Code簡介
QR碼是二維條碼的一種,1994年由日本Denso-Wave公司發明。QR來自英文「Quick Response」的縮寫,即快速反應的意思,源自發明者希望QR碼可讓其內容快速被解碼[1]。QR碼最常見於日本,並為目前日本最流行的二維空間條碼。QR碼比普通條碼可儲存更多資料,亦無需像普通條碼般在掃描時需直線對準掃描器。
(1).簡介
QR碼呈正方形,只有黑白兩色。在3個角落,印有較小,像「回」字的的正方圖案。這3個是幫助解碼軟件定位的圖案,使用者不需要對準,無論以任何角度掃描,資料仍可正確被讀取。
日本QR碼的標準JIS X 0510在1999年1月發佈,而其對應的ISO國際標準ISO/IEC18004,則在2000年6月獲得批准。根據Denso Wave公司的網站資料,QR碼是屬於開放式的標準,QR碼的規格公開,而由Denso Wave公司持有的專利權益,則不會被執行。
除了標準的QR碼之外,也存在一種稱為「微型QR碼」的格式,是QR碼標準的縮小版本,主要是為了無法處理較大型掃描的應用而設計。微型QR碼同樣有多種標準,最高可儲存35個字元。
(2).說明
QR碼原本是為了在汽車製造廠便於追蹤零件而設計,今日QR碼已廣泛使用在各行各業的存貨管理。使用者亦可透過設有RS-232C界面的個人電腦及解碼程式,連接掃描器或攝影機取得QR碼中的資料,十分適合存貨管理等企業應用。
QR碼的主要應用的項目可分成四類:
自動化文字傳輸:通常應用在文字的傳輸,利用快速方便的模式,讓人可以輕鬆輸入如地址、電話號碼、行事曆等,進行名片、行程資料等的快速交換。
數位內容下載:通常應用在電信公司遊戲及影音的下載,在帳單中列印相關的QR碼資訊供消費者下載,消費者透過QR碼的解碼,就能輕易連線到下載的網頁,下載需要的數位內容。
網址快速連結:以提供使用者進行網址快速連結、電話快速撥號等。
身分鑑別與商務交易:許多公司現在正在推行QR碼防偽機制,利用商品提供的QR碼連結至交易網站,付款完成後系統發回QR碼當成購買身份鑑別,應用於購買票卷、販賣機等。在消費者端,也開始有企業提供了商品品牌確認的服務,透過QR碼連結至統一驗證中心,去核對商品資料是否正確,並提供生產履歷供消費者查詢,消費者能夠更明白商品的資訊,除了能夠杜絕仿冒品,對消費者的購物更是多了一層保護。
二、QR code二維條碼產生器說明
在沒有網際網路得情況下,要產生QR Code二維條碼就沒有那麼容易。QR Code二維條碼為ISO/IEC 18004所規範,在網路上也有許多開放的Library可供下載引用。本產生器重點有下列三項:
引用產生QR Code二維條碼的SwetakeQRCode.jar函式庫
將User輸入的字串,利用SwetakeQRCode.jar函數庫轉成產生圖檔二維陣列,做完產生條碼依據。
在SurfaceView上繪製二維條碼矩形圖檔。
程式說明
自訂函數AndroidQREncode()有兩個傳入參數,分別為欲編碼的字串,以及要指定的QR Code Version。程式預設的QR Code Version為4,實驗僅能接受62個字元。所以若要接受更多的字元編碼,則需要修改QR Code Version的數值。
public void AndroidQREncode(String strEncoding, int qrcodeVersion)
{
try
{
/* 建構QRCode編碼物件 */
com.swetake.util.Qrcode testQrcode = new com.swetake.util.Qrcode();
/* L,M,Q,H */
testQrcode.setQrcodeErrorCorrect(M);
/* N,A or other */
testQrcode.setQrcodeEncodeMode(B);
/* 0-20 */
testQrcode.setQrcodeVersion(qrcodeVersion);
// getBytes
byte[] bytesEncoding = strEncoding.getBytes(utf-8);
if (bytesEncoding.length0 bytesEncoding.length 120)
{
/* 將字串透過calQrcode函數轉
文档评论(0)