孔貝貝
摘要:該文通過把條形碼掃描技術(shù)同移動端網(wǎng)絡(luò)交互技術(shù)進(jìn)行融合,給出了條形碼技術(shù)在數(shù)字圖書館中使用的通用技術(shù)方案。通過對條形碼技術(shù)及ZXing使用技術(shù)進(jìn)行分析及把ZXing條形碼掃描技術(shù)用于中科院文獻(xiàn)情報中心安卓移動端應(yīng)用,給開發(fā)者們進(jìn)行數(shù)字圖書館及其他移動應(yīng)用建設(shè)提供了思路。通過對ZXing由理論分析到最終的技術(shù)使用,詳細(xì)說明了ZXing在數(shù)字圖書館應(yīng)用中的使用場景與使用方法,為條形碼掃描技術(shù)在移動端數(shù)字圖書館中的應(yīng)用提供了好的服務(wù)范例。Zxing條形碼掃描識別技術(shù)在移動數(shù)字圖書館應(yīng)用中將發(fā)揮更多的作用。
關(guān)鍵詞:條形碼;移動數(shù)字圖書館;ZXing;安卓
分類號:TP391.1 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)27-0196-03
1 條形碼技術(shù)
條形碼(barcode)[1]是采用寬度不等的黑條和空白按照一定的編碼規(guī)則排列用于表達(dá)信息的圖形識別符,是一組計算機(jī)可讀數(shù)據(jù)[11],該數(shù)據(jù)是信息數(shù)據(jù)自動識別、輸入的重要方法[4],條形碼的展示形態(tài)有一維碼和二維碼,展示樣例如圖1所示。
條形碼的使用范圍很廣,包括動物、植物、醫(yī)療、圖書館等方面。圖書館同條形碼結(jié)合最緊密的就是圖書信息,印本圖書后面的條形碼屬于最早被使用的一維碼圖案,條形碼具體全球唯一性,已經(jīng)在傳統(tǒng)的圖書借閱業(yè)務(wù)中擔(dān)當(dāng)了十分重要的角色。從最早的表示圖書ISBN號的一維碼,到現(xiàn)在可以方便表示圖書鏈接信息等信息的二維碼,條形碼技術(shù)的使用可極大的方便用戶隨時隨地的進(jìn)行圖書館資源的獲取。
1.1 條形碼掃描技術(shù)在移動應(yīng)用中的使用
條形碼掃描技術(shù)在移動應(yīng)用中已經(jīng)作為被普遍接受的技術(shù),騰訊公司 “QQ瀏覽器”、優(yōu)視科技有限公司開發(fā)的“UC瀏覽器”這些主流的手機(jī)瀏覽器軟件都融入了條形碼掃描技術(shù),可以進(jìn)行網(wǎng)頁的登錄、圖書的網(wǎng)購等操作。
把移動終端進(jìn)行條形碼掃描技術(shù)應(yīng)用于移動數(shù)字圖書館應(yīng)用中,擴(kuò)展傳統(tǒng)的圖書館業(yè)務(wù)會成為未來圖書館業(yè)務(wù)發(fā)展的一個趨勢。ZXing條形碼識別技術(shù)[2]對一維碼、二維碼的掃描都提供了良好的掃描支持,可被應(yīng)用于安卓平臺、IOS平臺的移動終端。
1.2 ZXing條形碼技術(shù)背景介紹
ZXing[2]是由Google提供的一個開源軟件,主要用于條形碼的生成和掃描,支持眾多條形碼格式,支持的開發(fā)語言也常廣泛,包括:Java、C++、C#、Objective-C、ActionScript、Ruby,它所支持的手機(jī)平臺也非常的廣泛,包括目前最為流行的Android(安卓)、IOS(蘋果)手機(jī)操作系統(tǒng)。目前,ZXing條形碼掃描技術(shù)在移動端(手機(jī)、PAD等)占了條形碼掃描的多數(shù)市場,ZXing條形碼技術(shù)的不斷成熟也為該技術(shù)應(yīng)用于移動端數(shù)字圖書館提供了良好的技術(shù)支持。
ZXing所支持掃描的條形碼格式如表1所示,包括了基本上所有的條形碼。印本圖書的ISBN號采用的是一維碼格式EAN-13來顯示,印本圖書的書皮后面的條形碼就是該種類型的條形碼;圖書網(wǎng)站上一般采用的是PDF417格式的二維碼。
Zxing條形碼識別技術(shù)可以快速、良好的在無網(wǎng)絡(luò)連接的條件下識別這兩種條形碼的內(nèi)容,這對開發(fā)各種類型的移動端應(yīng)用提供了良好的支持。條碼掃描技術(shù)可方便的融入到采訪、編目、流通子系統(tǒng)中去。圖書的ISSN號都有自己的查重機(jī)制,不再對圖書進(jìn)行重新編碼,直接采用ISSN號對圖上進(jìn)行歸類,可大量減少圖書整理歸檔操作。在圖書的借閱、歸檔中采用ISSN號進(jìn)行整理,
1.3 ZXing條形碼掃描技術(shù)方法介紹
Android是由google開發(fā)的移動端軟件系統(tǒng),目前在世界上有190多個國家已經(jīng)使用該平臺基礎(chǔ)上開發(fā)的手機(jī),由于它的開源性,最近幾年得到了非常迅猛的發(fā)展。本文中著重對ZXing條形碼在Android端[3]移動應(yīng)用的原理及使用進(jìn)行分析與介紹。
Android采用Java技術(shù)為上層應(yīng)用開發(fā)的語言,ZXing也有提供基于該語言類型的版本支持。直接從官網(wǎng)上下載ZXing.jar包做為開發(fā)的支撐包采用ZXing中提供的函數(shù),就可以協(xié)助完成二維碼的掃描,開發(fā)者根據(jù)掃描結(jié)果如圖2的ISBN結(jié)合圖書館的相應(yīng)接口完成圖書的信息獲取。
2 ZXing條形碼掃描技術(shù)與Android移動數(shù)字圖書館應(yīng)用的結(jié)合
中科院文獻(xiàn)情報中心在條形碼掃描技術(shù)成熟以及移動數(shù)字圖書館業(yè)務(wù)興起之時加入到了移動數(shù)字圖書館應(yīng)用開發(fā)的行列中來,條形碼掃描技術(shù)作為其中的一項服務(wù)內(nèi)容,也被納入到了中科院文獻(xiàn)情況中心作為應(yīng)用的一個重要模塊來開發(fā)。中科院文獻(xiàn)情報中心采用條形碼獲取技術(shù),結(jié)合資源集成服務(wù)系統(tǒng)及借還書系統(tǒng),提供圖書信息的查看,借閱、續(xù)借等服務(wù)。
2.1 ZXing條形碼掃描技術(shù)與移動數(shù)字圖書館應(yīng)用的結(jié)合的處理流程
條形碼掃描與移動端應(yīng)用結(jié)合所采用到的技術(shù)方案的處理流程,開發(fā)者在進(jìn)行開發(fā)的時候需要把從網(wǎng)站上下載的zxing.jar包引入到工程中,整個技術(shù)方案的流程如圖4所示。程序中的詳細(xì)使用流程如下:
第一步,打開手機(jī)的攝像頭,完成攝像頭的初始化操作。移動端設(shè)備的攝像頭會被當(dāng)成一個掃描儀來使用。android中手機(jī)攝像頭的控制類是android.hardware.Camera,其中包括攝像頭的打開、閃光燈的控制等函數(shù),加入權(quán)限控制:android.permission.CAMERA,并且申請使用攝像頭硬件的特性:android.hardware.camera以及自動對焦特性android.hardware.camera.autofocus。
第二步,是進(jìn)行條形碼的掃描工作。掃描前ZXing庫需初始化加載不同的條形碼樣式,ZXing代碼中把條形碼樣式分成了四大類:產(chǎn)品類、一維碼類、qr code二級碼類、data matrix類。在加載不同條形碼類型成功后,移動端應(yīng)用開始采用手機(jī)攝像頭進(jìn)行對焦操作,完成對焦能獲取到清晰的圖像后,把捕獲的圖像當(dāng)成一個二進(jìn)制的圖像進(jìn)行處理,獲取到條形碼識別的文字信息即印本圖書的ISBN號。
第三步,根據(jù)ISBN號獲取圖書的相應(yīng)服務(wù)。通過中科院文獻(xiàn)情報中心資源集成發(fā)現(xiàn)系統(tǒng)提供的查詢接口根據(jù)ISBN號進(jìn)行圖書信息及相應(yīng)服務(wù)信息的獲取。移動終端通過使用HTTP協(xié)議同服務(wù)器終端提供的接口進(jìn)行交互從而提供相應(yīng)的服務(wù)數(shù)據(jù)[5-6],以適合移動端的顯示方式展示給用戶相關(guān)的服務(wù)信息。
通過以上三步,完成了從掃碼到獲取服務(wù)的整個過程,該過程是一個通用處理流程,開發(fā)者可根據(jù)不同的應(yīng)用場景為用戶提供豐富的服務(wù)內(nèi)容。
2.2 采用ZXing條形碼掃描技術(shù)進(jìn)行數(shù)字圖書館的借閱
中科院文獻(xiàn)情報中心的移動文獻(xiàn)服務(wù)平臺應(yīng)用安卓版提供了基于ZXing條形碼掃描技術(shù)的二維碼功能模塊。該應(yīng)用程序的開發(fā)工具是集成了Google的Android開發(fā)包SDK的Eclipse,并在代碼中引入了Zxing二維碼掃描技術(shù)所提供的開發(fā)包zxing.jar,針對二維碼掃描結(jié)果的處理,依托于http://beta.las.ac.cn以及http://opac.las.ac.cn/所提供的接口內(nèi)容,通過結(jié)合方案,最終可給用戶提供該本圖書的基本信息(標(biāo)題、作者、摘要等信息),以及服務(wù)鏈接(在架狀態(tài)、在線鏈接、原文傳遞等服務(wù)),方便的給用戶提供了便捷的數(shù)字化圖書館服務(wù)。以下是中科院文獻(xiàn)情報中心的移動文獻(xiàn)服務(wù)平臺提供服務(wù)的過程及內(nèi)容。
一、本文試圖書是Google Android SDK開發(fā)范例大全(第2版),通過ZXing條形碼掃描技術(shù),我們得到該圖書的ISBN號為:9787115229649。
二、通過該ISBN號,采用http://beta.las.ac.cn提供的圖書查詢接口,可以得到中科院文獻(xiàn)情報中心提供的關(guān)于該圖書的詳細(xì)信息介紹及服務(wù)信息(如圖4)。
三、結(jié)合OPAC所的服務(wù)接口http://opac.las.ac.cn/,采用ISBN號進(jìn)行圖書館藏情況的查詢,可以得到該本圖書在圖書館中的一些介紹信息以及在架位置、索書號以及在架狀態(tài)(在架、出借、編目中等)等信息。
通過以上操作,還可以延伸出許多非常有用的功能,如進(jìn)行圖書信息的分享,直接分享圖書信息給QQ好友、微信等等社交軟件中去,方便用戶記錄,結(jié)合圖書的ISBN號,利用網(wǎng)上提供的開源接口信息,如豆瓣的開源接口http://book.douban.com/isbn/isbn號/進(jìn)行圖書內(nèi)容的簡單查詢以及用戶的評價信息的獲取。
3 結(jié)束語
本文介紹了條形碼掃描技術(shù)及其應(yīng)用場景,并且分析了ZXing條形碼掃描技術(shù)庫包的結(jié)構(gòu)及其使用方式,并提供了條形碼掃描技術(shù)同移動數(shù)字圖書館結(jié)合的技術(shù)流程,在該流程的基礎(chǔ)上開發(fā)出了中科院文獻(xiàn)情報中心的移動文獻(xiàn)服務(wù)平臺安卓版應(yīng)用。未來有人提出用二維碼替換條形碼,其實是指用二維碼替換一維碼,不管采用哪種編碼方式,ZXing都可以正確得到存儲信息,都可以提供正確的服務(wù)。ZXing條形碼掃描技術(shù)作為一個支持多移動平臺的掃描技術(shù),可為數(shù)字化圖書館應(yīng)用提供良好的技術(shù)支持。
參考文獻(xiàn):
[1] 維基百科. 二維條形碼[EB/OL]. [2014-10-06]. http://zh.wikipedia.org/wiki/%E4%BA%8C%E7%BB%B4%E7%A0%81.
[2] Cocoa China. 如何在IOS中使用ZXing庫[EB/OL]. [2013-01-04]. http://www.cocoachina.com/applenews/devnews/2013/0104/5462.html.
[3] Android Developers. Android Developers[EB/OL]. [2014-10-06]. http://developer.android.com/index.html.
[4] 陳丹暉. 條形碼技術(shù)與應(yīng)用[M]. 北京: 化學(xué)工業(yè)出版社, 2011: 11-12
[5] 王家林. Android 4.0網(wǎng)絡(luò)編程詳解[M]. 北京: 電子工業(yè)出版社, 2012: 421-511.
[6] 余志龍, 陳昱勛, 鄭名杰, 等. Google Android SDK開發(fā)范例大全[M]. 2版.北京: 人民郵電出版社, 2010: 103-191.