二维码在图书馆移动服务中的应用*——以上海图书馆为例
朱雯晶, 夏翠娟
上海图书馆上海科学技术情报研究所 上海 200031
摘要

针对种类繁多的二维码标准,选择目前使用较普及的QR码,将上海市中心图书馆联盟各成员馆各类信息进行编辑并生成相应QR码,然后印制在“上海市中心图书馆一卡通分布图册”上,再由上海图书馆手机客户端或其他条码识别软件进行识别,即可随时获取上海市中心图书馆各成员馆基本信息,并可通过其中的地理位置信息进行导航,从而形成比较完整的移动服务应用场景。

关键词: QR码; 二维码; 移动服务; 条码识别; 条码生成
中图分类号:TP391
Application of Two-dimensional Code in Library Mobile Service
Zhu Wenjing, Xia Cuijuan
Institute of Scientific and Technical Information of Shanghai, Shanghai Library, Shanghai 200031, China
Abstract

Shanghai Library chooses the QR code as the standard to generate the two-dimensional code including all the common information of Shanghai Central Library members,then prints them on the Shanghai Central Library One-card-through map and uses Shanghai Library’s smart-phone app or other apps to identify all the information, especially the GEO information inside the QR code.Combined with navigation apps, the users can get to the library more efficiently.

Keyword: QR code; Two-dimensional code; Mobile service; Bar code scan; Bar code generation
1 引言

随着智能手机的迅速普及和发展,基于智能手机的各种移动应用层出不穷,二维码就是其中的一种,例如拍摄电视节目中二维码即可获取新闻和其他资讯,利用地铁车站和商场广告中的二维码即可获取购物信息等。

上海图书馆适时推出“上海市中心图书馆一卡通分布图册”,同时升级“上海图书馆移动客户端”(Android版与iOS版),通过二维码将平面地图、网站、手机客户端应用、地图导航等功能紧密结合在一起,形成完整的服务平台,并以“上海市中心图书馆一卡通分布图册”为基础,将信息以关联数据形式发布在网上,通过上海图书馆移动客户端与其他二维码识别软件对二维码内容加以应用,形成较完备的二维码应用服务场景。同时,上海图书馆正逐步将二维码与图书馆各类应用系统如iPac系统整合,通过二维码为读者提供更加便利与多元化的服务。

2 二维码应用
2.1 二维码概念

二维码(Two-dimensional Bar Code)是利用某种特定几何图形,按一定规律在平面(二维方向)上分布的黑白相间图形来记录数据符号信息;并在代码编制上巧妙利用计算机内部逻辑基础“0”、“1”比特流概念,运用若干与二进制相对应的几何形体来表示文字数值信息,并通过图像输入设备或光电扫描设备自动识读来实现信息自动处理[ 1]

二维码表示方法很多,常见的编码格式有:Data Matrix[ 2]、QR Code[ 3]等。

2.2 二维码常用实例

二维码应用领域非常广泛,已融入日常生活各个方面。常见应用实例有:

(1)订票、团购业务认证码:与传统短信验证码相比,它具有更高的安全性;认证码图片还可存储在手机中或打印在纸上,载体形式更加丰富。

(2)新闻资讯和多媒体广告:在新闻和广告中采用二维码,可使用户通过拍摄二维码,了解更多内容和信息,拓展展示渠道。

(3)手机应用程序与内容下载:通过识别二维码,可直接打开程序和内容下载链接,避免复杂步骤,提升用户体验。

(4)会议、论坛签到:与传统方式相比,通过二维码签到更便捷、更适于大型会议等。

(5)SNS应用与分享:可将各类网站、资讯等相关内容生成二维码并分享到各类SNS平台与他人互动。

2.3 二维码在图书馆应用

近年来,国内外图书馆业界对图书馆和二维码应用进行了很多有益探索。例如:梁永鸿等[ 4]认为二维码可与图书馆OPAC系统结合,通过抽取现有OPAC系统中书目信息,将其转换为QR码图片,并通过手机传递给读者,以弥补现有OPAC系统的不足。周喆[ 5]认为图书馆借还系统可与二维码结合,生成图书二维码,实现图书借还、读者认证、借阅管理等功能。

国内有很多图书馆在OPAC系统中增加了二维码功能,例如浙江理工大学在其书目检索系统中增加二维码,可通过其查看当前图书具体馆藏信息[ 6]

国外也有很多在图书馆二维码方面的应用。Massis[ 7]介绍了图书馆行业在二维码方面的最新成果和应用,包括迈阿密大学利用QR码提升其图书馆服务。当学生在图书馆检索书目时,通过扫描二维码可将查询图书信息保存到智能手机中,以便下次使用;也可利用书中的QR码,在扫描后打开特定移动网站,显示与当前图书相同名称作者和主题。

Walsh[ 8]在QR码与图书馆服务相结合方面进行探索,针对QR码中几种常见信息格式提出见解:在QR码中编写文本内容,如某阅览室详细的行走路径,可用来补充和扩展图书馆各类指示标识;在OPAC系统中提供的二维码编入了摘要和基本信息,可避免读者手写摘录不便;在QR码中编入手机短信服务或者电话号码,可方便读者用短信与图书馆员交流;还可编入URL信息,进一步扩展相关服务。

MacKinnon等[ 9]介绍了美国加州Contra Costa图书馆“Snap & Go”二维码移动服务,这项服务便于读者下载电子书和有声读物,无论在图书馆或社区中,均可方便利用图书馆资源。

3 二维码元数据格式标准和生成
3.1 二维码编码信息常见格式

二维码编码内容标准繁多,尚未形成统一规范和公认标准,其编码内容理论上可采用各种元数据规范。其中,应用较多的是vCard[ 10]标准,主要用于标示电子名片,并将读取信息直接作为通讯录信息保存到手机通讯录中。其最简单编码格式为:

BEGIN:VCARD BEGIN:VCARD

N:名:姓 N:wj:z

TEL;CELL:电话号码 TEL;CELL:1234567890

EMAIL:电子邮件地址 EMAIL:wjzhu@libnet.sh.cn

END:VCARD END:VCARD

除上述通用标准外,各大运营商、二维码服务提供商均制订了各自二维码内容标准格式,并通过其配套二维码识别软件给予支持。

3.2 二维码生成(以QR Code为例)

QR Code二维码生成可采用多种方式,其主流方法有两种:编程实现和使用二维码生成工具。

对于编程实现来说,主要流程如图1所示:

图1 QR Code 生成步骤

图1中“获取版本必要参数并编码信息”步骤为生成QR Code核心步骤,根据QR Code标准生成二维布尔型数组。目前各类高级程序语言均有相应QR Code类库可供调用生成,例如ZXing[ 11]等。

对于使用二维码生成工具来说,则更为简单,在PC平台上,各大智能手机平台均有不同QR Code生成工具可供使用,例如QuickMark[ 12]、快拍二维码[ 13]等。

4 上海图书馆二维码实践
4.1 上海市中心图书馆分布图册

上海图书馆在二维码应用方面进行了很多探索,例如在2009年家谱展览中推出二维码服务[ 14],继而在2011年下半年,又推出基于二维码的“上海市中心图书馆一卡通分布图册”,这也是国内首份运用二维码的公共图书馆地图册[ 15],如图2所示:

图2 上海市中心图书馆一卡通分布图册

在该地图册上,标出了现有250多家中心图书馆成员馆位置,并将各图书馆信息编入QR Code二维码印刷在地图册上。这样,读者不仅可以通过该地图册查看特定图书馆信息,还可以通过二维码扫描工具读取并识别某图书馆二维码信息,进而实现查看等操作。该地图册二维码采用QR Code编码,码内数据采用UTF-8格式,二维码版本10,纠错等级L;而QR Code内容编码格式则采用国际标准vCard 2.1格式[ 10],使之具有良好的兼容性和可识别性。这本地图册采用8个字段,与vCard格式中元素一一对应,其内容格式与vCard格式对应关系如表1所示:

表1 vCard格式与“上海市中心图书馆”内容格式对应表

链接地址是上海市中心图书馆网站(http://data.libnet.sh.cn:8080)中该馆的URI,例如上海图书馆馆代码是sl,在网站上URI即是data.libnet.sh.cn:8080/sl。直接点击该链接地址,即可打开该馆在上海市中心图书馆网站页面,包含该馆主页、E-mail、照片、交通路线等详细信息。上海市中心图书馆网站基于内容管理系统Drupal,将260余家区县分馆和街镇服务点详细信息以关联数据技术发布,既可跨平台、跨终端浏览,还可提供RDF/XML、JSON、N3等格式数据供外部应用获取;其外部应用可以是Web代理,也可以是手机客户端应用。该地图册QR Code二维码编码格式实例,如图3所示:

图3 上海图书馆QR Code实例

2012年,上海市中心图书馆分布图册重新印制(第二版),除对其中各馆信息进行更新外,也对二维码制作流程进行优化,包括:

(1)在二维码版本选择上根据内容长度自动动态匹配最小版本。

(2)二维码图片输出默认增加白框以保证二维码正常识别。

(3)自动处理二维码图片分辨率,以满足出版印刷时最低分辨率(300 dpi)的需要。

4.2 上海图书馆移动客户端

为了支持中心图书馆二维码识别,上海图书馆移动客户端在2011年12月全面升级到2.0版本。在2.0版本中增加了条码扫描功能,支持识别图书等传统一维条码,也支持上海市中心图书馆分布图册二维条码[ 16]。读者通过上海图书馆移动客户端Android或iOS应用,均可方便地拍摄并识别该二维码信息。

其条码识别流程如图4所示:

图4 二维码识别场景流程

以Android客户端2.0版为例,上海图书馆移动客户端条码识别技术通过ZXing[ 14]进行二维码识别,实例如下:

(1)创建BarcodeActivity继承ZXing的识别Activity:CaptureActivity并实现SurfaceHolder.Callback接口。

public class BarcodeActivity extends CaptureActivity implements

SurfaceHolder.Callback {

}

(2)分别在覆盖的onCreate方法和onResume方法中进行初始化

@Override

public void onCreate(Bundle icicle) {

super.onCreate(icicle);

CameraManager.init (getApplication());

//在Activity创建时对摄像头进行初始化操作

}

@Override

protected void onResume() {

super.onResume();

SurfaceView surfaceView=

(SurfaceView)findViewById(R.id.preview_view);

SurfaceHolder surfaceHolder = surfaceView.getHolder();

//当Activity Resume时,判断Surface是否已被销毁,并进行初始化

if (hasSurface) {

initCamera(surfaceHolder);

} else {

surfaceHolder.addCallback(this);

surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

}

}

(3)定义initCamera()方法,通过CaptureActivityHandler用于实现条码结果处理。

private void initCamera(SurfaceHolder surfaceHolder) {

CameraManager.get().openDriver(surfaceHolder);

if (handler == null) {

//指定处理图片识别的Hanlder类

handler = new CaptureActivityHandler(this, decodeFormats,characterSet);

}

}

(4)在handleDecode()中编写对于二维码识别的逻辑代码。

public void handleDecode(Result rawResult, Bitmap barcode) {

ResultHandler resultHandler = ResultHandlerFactory.makeResultHandler(this, rawResult);

//业务逻辑代码

}

以上是在Android客户端中进行二维码识别的几个主要步骤,可将二维码服务与移动客户端实现整合,以方便读者使用。

4.3 上海图书馆iPac系统

上海图书馆正在着手将二维码服务融入iPac书目检索系统。在iPac系统中,读者可以实时查询图书的书目信息与馆藏信息。然而当读者找到自己所需图书时,仍须用手工方式记录图书信息,再进行索书或开架查找,这样会拉长整个图书借阅过程,给读者带来不便。为此,笔者实现了二维码服务与iPac系统的整合。其主要步骤如下:

(1)修改iPac系统中负责相关内容展示的XSLT文件,增加二维码图片展示区域。

(2)将系统唯一控制号通过HTTP GET方式传给二维码服务接口,其调用实例如下:http://ip地址:端口号/Shlib_QR/service/GenQR?bib=123456。

(3)二维码服务接口将传入控制号输入后台数据库查询书目信息,并生成二维码图片,将图片返回给iPac系统的展示页面。

(4)返回二维码图片将会展现在步骤(1)中预先定义好的位置,供读者拍摄识别。

所生成书目信息二维码如图5所示:

图5 二维码书目信息二维码与识别内容

通过该二维码,读者将更好地使用iPac系统,手机拍摄后可将书目信息迅速保存到手机中,无须采用传统纸笔记录方式,大大提高了读者图书查找效率。

5 结语

目前,上海图书馆实现了各类二维码应用,通过传统纸质印刷、网站和应用系统展示、智能手机拍摄识别,已形成比较完整和丰富的二维码应用场景。

二维码在图书馆中的应用,主要有以下几种实例:

(1)导航与定位服务:通过拍摄二维码,可以获取当前读者与图书馆位置;并可将地理位置坐标(GEO)[ 17]编入二维码。经手机拍摄识别后,则可通过手机导航功能快速定位图书馆位置,并获取其具体路线。

(2)信息与资源共享:将各类资源和信息内容或链接通过二维码方式与他人分享。例如:将图书馆书目信息通过二维码进行分享。

(3)快速资源获取:拍摄二维码,快速下载各类资料与文件。例如:图书馆移动客户端安装文件、学术期刊和论文等。

(4)内容记录服务:在此类iPac系统中,读者查询相关内容,通过生成二维码,并经拍摄后保存到手机,使读者无须携带纸笔即可记录。

(5)导览服务:通过扫描二维码,可获取当前位置信息,通过配套应用软件等方式进行定位与导览,例如展览中展品介绍信息、当前位置等。

二维码应用中同样也存在一些问题,包括:

(1)编码内容选择:由各类信息直接生成二维码,会导致二维码展示面积庞大,需要相应提高手机摄像头的像素要求。如果直接编入一个网站地址,则可大大降低二维码识别复杂度,但需要手机发起网络连接才能获取数据,这就增加了使用者的网络通信成本。

(2)内容更新:在将动态文本数据编入二维码后,会产生二维码内容更新问题。这需要进行判断,是实时生成二维码,或者是定期、批量更新二维码,以保证内容正确性。

(3)安全性:二维码有时会作为各类活动和会议的多种门票验证码使用。由于其自身并不提供保密功能,只需简单复制,便能读取其中信息,因此需要配合其他验证功能一并使用。

随着移动互联网时代来临,二维码服务作为重要沟通方式之一,会联接传统媒体和移动互联网之间信息交互。图书馆各类二维码服务必将日益丰富和完善,需要不断提升其服务质量,为广大读者带来更多功能和体验。

参考文献
[1] 二维码[EB/OL]. [ 2012-03-23]. 二维码[EB/OL]. [2012-03-23]. http://baike.baidu.com/view/132241.htm.(Two-dimensionalCode[EB/OL]. [2012-03-23]. http://baike.baidu.com/view/132241.htm [本文引用:1]
[2] Data Matrix[EB/OL]. [ 2012-03-13]. Data Matrix[EB/OL]. [2012-03-13]. http://baike.baidu.com/view/8115921.htm. [本文引用:1]
[3] QRCode[EB/OL]. [ 2012-03-23]. QRCode[EB/OL]. [2012-03-23]. http://baike.baidu.com/view/587003.htm. [本文引用:1]
[4] 梁永鸿, 苏宁. 手机二维码在图书馆OPAC中的应用与实现[J]. 无线互联科技, 2011(3): 58-59.
(Liang Yonghong, Su Ning. Two-dimensional Code Application and Practicing in OPAC System[J]. Wireless Internet Technology, 2011(3): 58-59. ) [本文引用:1]
[5] 周喆. 二维码在图书借还管理系统中的应用[J]. 图书馆研究与工作, 2010(3): 39-41.
(Zhou Zhe. Two-dimensional Code Application in Library Circulation System[J]. Library Science Research & Work, 2010(3): 39-41. ) [本文引用:1] [CJCR: 1.6079]
[6] 馆藏目录(OPAC)中的二维码(QR Code)使用说明[EB/OL]. [ 2012-04-08]. 馆藏目录(OPAC)中的二维码(QR Code)使用说明[EB/OL]. [2012-04-08]. http://lib.zstu.edu.cn/hwweb/opac/ajax_qr_usage.php.(UserGuideofQRCodeinOPAC[EB/OL]. [2012-04-08]. http://lib.zstu.edu.cn/hwweb/opac/ajax_qr_usage.php [本文引用:1]
[7] Massis B E. QR Codes in the Library[J]. New Library World, 2011, 112(9-10): 466-469. [本文引用:1]
[8] Walsh A. Quick Response Codes and Libraries[J]. Library Hi Tech News, 2009, 26(5-6): 7-9. [本文引用:1]
[9] MacKinnon P, Sanford C. Snap & Go: A QReative Case in Point[J]. Library Hi Tech News, 2010, 27(4-5): 5-8. [本文引用:1]
[10] vCard[EB/OL]. [ 2011-11-22]. vCard[EB/OL]. [2011-11-22]. http://zh.wikipedia.org/zh-cn/VCard. [本文引用:2]
[11] ZXing[EB/OL]. [ 2012-03-24]. ZXing[EB/OL]. [2012-03-24]. http://code.google.com/p/zxing/. [本文引用:1]
[12] QuickMark[EB/OL]. [ 2011-12-14]. QuickMark[EB/OL]. [2011-12-14]. http://baike.baidu.com/view/852396.htm. [本文引用:1]
[13] 快拍二维码[EB/OL]. [ 2012-01-18]. 快拍二维码[EB/OL]. [2012-01-18]. http://baike.baidu.com/view/5790424.htm.(Two-dimensionalCodeQuickShot[EB/OL]. [2012-01-18]. http://baike.baidu.com/view/5790424.htm [本文引用:1]
[14] 一部手机搜遍上图藏书目录——3G时代手机图书馆的新体验[EB/OL]. [ 2011-10-28]. 一部手机搜遍上图藏书目录——3G时代手机图书馆的新体验[EB/OL]. [2011-10-28]. http://www.library.sh.cn/news/list.asp?id=5245.(SearchingShanghaiLibrary’sBibliographyinaMobilePhone——NewExperienceofMobileLibraryin3G[EB/OL]. [2011-10-28]. http://www.library.sh.cn/news/list.asp?id=5245 [本文引用:2]
[15] 上海市中心图书馆硕果累累[EB/OL]. [ 2012-01-13]. 上海市中心图书馆硕果累累[EB/OL]. [2012-01-13]. http://dszb.whdszb.com/whdszb/html/2012-01/13/content_122458.htm.(FruitfulofShanghaiCentralLibraryAlliance[EB/OL]. [2012-01-13]. http://dszb.whdszb.com/whdszb/html/2012-01/13/content_122458.htm [本文引用:1]
[16] 上海图书馆手机客户端[EB/OL]. [ 2011-12-20]. 上海图书馆手机客户端[EB/OL]. [2011-12-20]. http://www.library.sh.cn/mobile/down/index.htm.(ShanghaiLibrarySmartPhoneApplication[EB/OL]. [2011-12-20]. http://www.library.sh.cn/mobile/down/index.htm [本文引用:1]
[17] GEO[EB/OL]. [ 2011-09-15]. GEO[EB/OL]. [2011-09-15]. http: //zh. wikipedia. org/zh/Geo.
(作者E-mail: wjzhu@libnet. sh. cn) [本文引用:1] [JCR: 4.826]