999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ZXing開源庫的二維碼生成研究

2021-03-15 07:01:33文家朝楊輝
電腦知識(shí)與技術(shù) 2021年3期

文家朝 楊輝

摘要:目前,二維碼的應(yīng)用已經(jīng)相當(dāng)廣泛,在移動(dòng)支付領(lǐng)域、綠色食品溯源領(lǐng)域、在各種設(shè)備管理領(lǐng)域,都可以看到它的身影。對(duì)個(gè)人而言,在使用二維碼時(shí),往往使用的是二維碼提供商提供的服務(wù),而很少在乎它是如何生成的。該文從二維碼的開源工具ZXing開始入手,研究二維碼的生成。研究結(jié)果表明,使用開源工具生成的二維碼,在可靠性和安全性上面,具有一定的優(yōu)勢。

關(guān)鍵詞:二維碼;QR碼;Zxing;開源庫;二維碼生成

中圖分類號(hào):TP311? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1009-3044(2021)03-0087-03

1 二維碼的由來

二維碼,英語是Quick Response Code,也叫QR碼,直譯是快速響應(yīng)碼,是由日本的DENSO WAVE公司于1994年發(fā)明[1]。由于比條形碼可以存儲(chǔ)更多內(nèi)容等多種原因,二維碼在以后的時(shí)間里得到了長足的發(fā)展。在中國,手機(jī)實(shí)現(xiàn)的二維碼支付更是讓二維碼得到了廣泛的應(yīng)用,在全世界許多的國家和地區(qū),二維碼也得到了普及。在學(xué)術(shù)研究上面,二維碼應(yīng)用在了綠色食品溯源的研究[2]和醫(yī)療儀器設(shè)備的研究[3]。

2 現(xiàn)階段二維碼如何生成

在了解了二維碼的由來以后,在現(xiàn)實(shí)生活中,如何去使用二維碼,特別是如何去生成二維碼,成為許多二維碼應(yīng)用需要解決的問題。

那么,二維碼究竟是如何生成的呢?通過查詢相關(guān)資料后發(fā)現(xiàn),二維碼的生成主要有兩種方式:第一是借助二維碼服務(wù)提供商生成二維碼,第二是通過使用開源庫自己生成二維碼。目前二維碼服務(wù)提供商提供的服務(wù),大多使用服務(wù)器/瀏覽器模式生成二維碼,有些簡單的應(yīng)用可以免費(fèi)使用,而有些功能齊全,應(yīng)用場景復(fù)雜的,則需要支付一定的費(fèi)用才可以使用。

這兩種方式各有優(yōu)劣,下面將分別進(jìn)行簡單介紹。

2.1 二維碼服務(wù)提供商生成

服務(wù)提供商生成二維碼有它的優(yōu)點(diǎn)和缺點(diǎn),下面分別進(jìn)行分析。

目前二維碼的快速發(fā)展,成就了許許多多的二維碼服務(wù)提供商。優(yōu)秀的二維碼提供商可以提供二維碼生成、美化、印制、統(tǒng)計(jì)、管理等技術(shù)和行業(yè)解決方案,幫助用戶在不同行業(yè)、不同場景,通過二維碼減少信息溝通成本,提升營銷和管理效率。用戶在使用時(shí),只要按照服務(wù)提供商提供的操作步驟操作,就可以方便地使用二維碼,遇到問題還可以向客服尋求解決的辦法。優(yōu)秀的二維碼服務(wù)提供商,可以提供一整套具體的一條龍報(bào)務(wù)。在使用二維碼服務(wù)提供商展開的研究中,也有不少的研究,例如羅雁雁老師關(guān)于新生兒重癥監(jiān)護(hù)室貴重儀器管理中的應(yīng)用中,就使用了著名草料二維碼服務(wù)提供商展開研究[4]。

但是,正是由于二維碼服務(wù)提供商眾多,他們的規(guī)模、水平、服務(wù)質(zhì)量就會(huì)有參差不齊,這樣在使用二維碼服務(wù)提供商提供的服務(wù)時(shí),如果選擇不好,就會(huì)遇到用戶數(shù)據(jù)安全問題,因?yàn)樯傻亩S碼,是存儲(chǔ)在提供商的服務(wù)器上的,通常來說,用戶需要先在提供商的網(wǎng)站上進(jìn)行注冊(cè)才可以使用,而且有些服務(wù)需要付費(fèi)。

2.2 使用開源庫生成

生成二維碼的開發(fā)語言有許多種,根據(jù)不同的開發(fā)語言,選擇不相同的開源庫,在生成二維碼的研究中,有江蘇財(cái)經(jīng)職業(yè)技術(shù)學(xué)院的管小衛(wèi)老師的基于python開發(fā)語言生成二維碼,包括生成普通二維碼、高級(jí)二維碼和帶Logo的二維碼[5],桂林電子科技大學(xué)的陳元枝等老師基于Zxing的彩色二維碼生成與識(shí)別[6]。

通過前期的調(diào)研以及根據(jù)自己擅長的編程語言種類,本文的研究最終選擇ZXing開源庫來對(duì)二維碼的生成進(jìn)行研究。在選擇開源庫上面,使用Zxing開源自己生成二維碼,比使用二維碼服務(wù)提供商提供的二維碼有一個(gè)特別大的優(yōu)勢,那就是完全不用擔(dān)心掃碼會(huì)有風(fēng)險(xiǎn),所跳轉(zhuǎn)的頁面是自己可以把握的。

ZXing是Java實(shí)現(xiàn)的開放源代碼,它提供了可以處理許多格式的條碼圖像處理庫[7]。這里說的“許多格式”,也包括了在生活中常見的條形碼和二維碼,也就是說,可以利用ZXing開源庫來實(shí)現(xiàn)對(duì)條形碼、二維碼的生成。

本文重點(diǎn)研究使用Zxing生成二維碼,效果圖如圖1所示。研究目標(biāo)大體步驟如下:

1)通過建立一個(gè)網(wǎng)站,輸入條件可以分為三種:文本、網(wǎng)址以及上傳文件。

2)當(dāng)輸入條件為文本時(shí),輸出內(nèi)容是一個(gè)二維碼圖片,用手機(jī)掃描該二維碼圖片時(shí),顯示出該二維碼包含的文本信息;當(dāng)輸入條件為網(wǎng)址時(shí),輸出內(nèi)容是一個(gè)二維碼圖片,用手機(jī)掃描該二維碼圖片時(shí),自動(dòng)跳轉(zhuǎn)到該網(wǎng)址;當(dāng)輸入條件為上傳文件時(shí),輸出內(nèi)容是一個(gè)二維碼圖片,用手機(jī)掃描該二維碼時(shí),根據(jù)上傳文件的類型,如果是音頻文件,則打開該音頻,可以播放,如果是視頻文件,打開該視頻,可以播放視頻,如果是其他不能在線播放的文件,則提示下載文件。

3 技術(shù)路線及問題解決

3.1 網(wǎng)站建立

本系統(tǒng)使用Apache Tomcat作為網(wǎng)站服務(wù)器,集成開發(fā)環(huán)境為Eclipse,在前臺(tái)的開發(fā)上面,使用Dreamweaver輔助開發(fā)。

3.2 表單的提交

本系統(tǒng)涉及三個(gè)表單的提交,分別對(duì)應(yīng)文本、網(wǎng)址和文件上傳。通過三個(gè)表單提交到三個(gè)對(duì)應(yīng)的Servlet。

3.3 用到的ZXing包

ZXing包,包含了許許多多的jar包,在使用網(wǎng)頁版處理Zxing生成二維碼的過程中,本系統(tǒng)只用到了core-3.3.3.jar、core-3.3.3-javadoc.jar和core-3.3.3-sources.jar三個(gè)jar包。將這三個(gè)包下載后,導(dǎo)入到Elipse中的Build Path中來。

3.4 中文亂碼解決

中文亂碼是許多的開發(fā)中都會(huì)遇到的問題,在本系統(tǒng)中,涉及的中文亂碼的解決有三個(gè)內(nèi)容,分別是ZXing中文亂碼、Servlet中文亂碼以及jsp頁面中文亂碼。

3.4.1 ZXing中文亂碼

在使用ZXing生成二維碼的過程中,如果使用默認(rèn)的情況,不管是文本二維碼的生成、網(wǎng)址二維碼的生成還是上傳文件的二維碼生成,都不能很好地支持中文,會(huì)造成中文亂碼,需要將輸入內(nèi)容中的中文,由“iso8859-1”轉(zhuǎn)換為“utf-8”編碼。例如,當(dāng)輸入文本是“這是一段中文”時(shí),在java代碼中,需要做如下操作。

textString = “這是一段中文”;

textString = new String( textString.getBytes( “iso8859-1”, “utf-8” ));

3.4.2 Servlet中文亂碼

在提交到的Servlet中,也需要對(duì)提交的中文進(jìn)行處理。操作如下。

response.setCharacterEncoding(“UTF-8”);

response.setHeader(“content-type”,”text/html;charset=UTF-8”);

request.setCharacterEncoding(“UTF-8”);

3.4.3 jsp頁面中文亂碼

這個(gè)是在jsp開發(fā)過程中最常見的,只需要設(shè)置<%@ page language=“java” contentType=“text/html; charset=UTF-8” pageEndcoding=”UTF-8”%>即可。

3.5 ZXing生成二維碼的步驟

使用ZXing生成二維碼,步驟其實(shí)不多,粗略的步驟如表1所示。

4 系統(tǒng)測試

系統(tǒng)測試分為文本生成二維碼、網(wǎng)址生成二維碼、文件上傳生成二維碼三種。

4.1 文本生成二維碼

在文生成二維碼的測試時(shí),輸入內(nèi)容為“這是一段中文”,在點(diǎn)擊“生成二維碼”按鈕后,系統(tǒng)跳轉(zhuǎn)到一個(gè)展示生成的二維碼圖片的頁面,為了方便檢查,同時(shí)在該二維碼圖片的上面顯示該圖片的路徑。最后使用手機(jī)掃碼工具,掃描生成的二維碼,展示出掃碼結(jié)果。如圖2至圖4所示。

4.2 網(wǎng)址生成二維碼

在網(wǎng)址生成二維碼測試時(shí),使用人民網(wǎng)作為測試網(wǎng)址,輸入內(nèi)容為人民網(wǎng)的官網(wǎng)地址,即“http://www.people.com.cn/”,在點(diǎn)擊“提交”按鈕后生成二維碼,使用手機(jī)二維碼掃碼工具掃碼后,跳轉(zhuǎn)到人民網(wǎng)首頁。如圖5至圖7所示。

4.3 文件上傳生成二維碼

在文件上傳生成二維碼測試時(shí),選擇一個(gè)文件進(jìn)行上傳操作,在點(diǎn)擊“提交”按鈕后,生成一個(gè)二維碼圖片,使用手機(jī)掃這個(gè)二維碼時(shí),提示下載該文件。如圖8至圖10所示。

5 創(chuàng)新點(diǎn)及不足

本文主要探討了基于ZXing開源庫的生成二維碼的研究,通過建立一個(gè)網(wǎng)站服務(wù)器,本系統(tǒng)使用Apache Tomcat作為網(wǎng)站服務(wù)器,集成開發(fā)環(huán)境為Eclipse。通過三種輸入內(nèi)容,即文本、網(wǎng)址、文件上傳,成功生成了對(duì)應(yīng)的三種類別的二維碼,由于是使用本地網(wǎng)絡(luò)進(jìn)行測試,故在使用手機(jī)進(jìn)行掃碼時(shí),需要手機(jī)和本地網(wǎng)站服務(wù)器在同一個(gè)局域網(wǎng)內(nèi)才能正常顯示出掃碼結(jié)果,要想在局域網(wǎng)外也可以正常掃出結(jié)果,還需要將網(wǎng)站發(fā)布到因特網(wǎng)去。

本研究的創(chuàng)新點(diǎn)在于,通過建立本地網(wǎng)站服務(wù)器,使用ZXing開源工具成功的生成二維碼,文件和二維碼存儲(chǔ)在自己的本地服務(wù)器上,相對(duì)于使用二維碼服務(wù)提供商,存儲(chǔ)內(nèi)容全在提供商的服務(wù)器上的這種方式,在從國家層面到個(gè)人層面都非常重視網(wǎng)絡(luò)安全和數(shù)據(jù)安全的今天,它的可靠性和安全性更有保障。在使用ZXing開源庫生成二維碼的研究中,上傳視頻、音頻和其他文件的大小,理論上不受限制。在以后的研究中,可以將本文的研究作為基礎(chǔ),展開更大范圍,更深入的研究。

由于人力及精力,自己開發(fā)生成的二維碼,在應(yīng)用的廣泛程度上,不及目前比較流行的二維碼提供商提供的服務(wù)。

參考文獻(xiàn):

[1] 官網(wǎng)介紹:QR碼的成功之路[EB/OL].[2020-06-09].https://www.qrcode/zh/history.

[2] 施連敏,郭翠珍,蓋之華,等.基于二維碼的綠色食品溯源系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].制造業(yè)自動(dòng)化,2013,35(16):144-146.

[3] 鄭夢(mèng)靜,何好好,谷甜甜.基于二維碼技術(shù)的醫(yī)療儀器設(shè)備管理[J].中醫(yī)藥管理雜志,2020,28(14):51-52.

[4] 羅雁雁.草料二維碼在新生兒科重癥監(jiān)護(hù)室貴重儀器管理中的應(yīng)用[J].當(dāng)代護(hù)士(上旬刊),2020(5):174-175.

[5] 管小衛(wèi).基于Python的二維碼生成與識(shí)別[J].科學(xué)技術(shù)與創(chuàng)新,2020(25):99-100.

[6] 陳元枝,鄧艷.基于Zxing的彩色QR碼的生成與識(shí)別方法[J].桂林電子科技大學(xué)學(xué)報(bào),2016,36(4):333-336.

[7] 官網(wǎng)介紹.ZXing項(xiàng)目[EB/OL].[2020-08-20].https://github.com/zxing.

【通聯(lián)編輯:謝媛媛】

主站蜘蛛池模板: 日韩欧美色综合| 一级一级一片免费| 深夜福利视频一区二区| 成人国产精品视频频| 九九视频在线免费观看| 国产欧美日韩91| 香蕉精品在线| 久久99久久无码毛片一区二区| 国产亚洲精久久久久久无码AV| 欲色天天综合网| 欧美a网站| 亚洲天堂视频网站| 一级全黄毛片| 国产精品护士| 成人国产精品网站在线看 | 久久综合久久鬼| 2020精品极品国产色在线观看| 超清无码一区二区三区| 国产成人久视频免费| 色天天综合| 在线观看国产网址你懂的| 乱人伦视频中文字幕在线| 日韩乱码免费一区二区三区| 都市激情亚洲综合久久| 亚洲视频免费播放| yy6080理论大片一级久久| 青青青国产视频手机| 国产91精品调教在线播放| 久久久久亚洲Av片无码观看| 热思思久久免费视频| 欧美精品亚洲日韩a| AV不卡在线永久免费观看| 久久香蕉国产线| a级毛片免费网站| 国产欧美精品午夜在线播放| 午夜精品一区二区蜜桃| 国产超薄肉色丝袜网站| 日本欧美视频在线观看| 欧美日韩成人在线观看| 国产精品久久精品| 国产精品久久久久婷婷五月| 男人天堂亚洲天堂| 91精品啪在线观看国产60岁| 91人妻日韩人妻无码专区精品| 视频一本大道香蕉久在线播放| 国产精品男人的天堂| 狠狠色噜噜狠狠狠狠奇米777| 婷婷亚洲综合五月天在线| 国产免费怡红院视频| 国产精品一线天| 欧美午夜理伦三级在线观看| 欧美特黄一级大黄录像| 亚洲 欧美 日韩综合一区| 88av在线看| 99久久精品无码专区免费| 亚洲IV视频免费在线光看| 国产一级α片| 国产精品xxx| 国产视频a| 色天堂无毒不卡| 国产大片喷水在线在线视频| 国产高清不卡视频| 99视频有精品视频免费观看| 丝袜高跟美脚国产1区| 国产成人毛片| 亚洲国产欧美目韩成人综合| 国模私拍一区二区三区| 久久综合伊人77777| 在线另类稀缺国产呦| 人妻精品久久久无码区色视| 久久国产精品夜色| 尤物精品国产福利网站| 国产无人区一区二区三区| 久久久久久尹人网香蕉| 久久亚洲综合伊人| 国产九九精品视频| 精品国产黑色丝袜高跟鞋| 最新国产成人剧情在线播放| 国产91麻豆视频| 制服丝袜国产精品| 亚洲综合片| 东京热一区二区三区无码视频|