• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

      2021-03-15 07:01文家朝楊輝
      電腦知識與技術(shù) 2021年3期
      關(guān)鍵詞:二維碼

      文家朝 楊輝

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

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

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

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

      1 二維碼的由來

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

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

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

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

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

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

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

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

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

      2.2 使用開源庫生成

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

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

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

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

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

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

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

      3.1 網(wǎng)站建立

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

      3.2 表單的提交

      本系統(tǒng)涉及三個表單的提交,分別對應(yīng)文本、網(wǎng)址和文件上傳。通過三個表單提交到三個對應(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三個jar包。將這三個包下載后,導(dǎo)入到Elipse中的Build Path中來。

      3.4 中文亂碼解決

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

      3.4.1 ZXing中文亂碼

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

      textString = “這是一段中文”;

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

      3.4.2 Servlet中文亂碼

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

      response.setCharacterEncoding(“UTF-8”);

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

      request.setCharacterEncoding(“UTF-8”);

      3.4.3 jsp頁面中文亂碼

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

      3.5 ZXing生成二維碼的步驟

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

      4 系統(tǒng)測試

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

      4.1 文本生成二維碼

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

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

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

      4.3 文件上傳生成二維碼

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

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

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

      本研究的創(chuàng)新點在于,通過建立本地網(wǎng)站服務(wù)器,使用ZXing開源工具成功的生成二維碼,文件和二維碼存儲在自己的本地服務(wù)器上,相對于使用二維碼服務(wù)提供商,存儲內(nèi)容全在提供商的服務(wù)器上的這種方式,在從國家層面到個人層面都非常重視網(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è)計與實現(xiàn)[J].制造業(yè)自動化,2013,35(16):144-146.

      [3] 鄭夢靜,何好好,谷甜甜.基于二維碼技術(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的二維碼生成與識別[J].科學(xué)技術(shù)與創(chuàng)新,2020(25):99-100.

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

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

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

      猜你喜歡
      二維碼
      二維碼通行券自助發(fā)行系統(tǒng)在新興市場的應(yīng)用
      二維碼迷宮
      二維碼
      小康二維碼
      從條形碼到二維碼
      從條形碼到二維碼
      會賺錢的收款二維碼
      讓嚴(yán)肅的二維碼呆萌起來
      二維碼讓政務(wù)公開更直接
      為二維碼識別的獻(xiàn)禮之作——評測平治二維碼門禁讀卡器
      石林| 栾城县| 孟津县| 西城区| 腾冲县| 阜阳市| 广河县| 调兵山市| 通山县| 葵青区| 阿拉善右旗| 忻州市| 商河县| 隆子县| 玛曲县| 廉江市| 岳池县| 武山县| 马公市| 博湖县| 永胜县| 乌兰浩特市| 阿坝| 德格县| 马边| 全椒县| 西充县| 乌兰浩特市| 上思县| 东乡县| 福建省| 秦皇岛市| 师宗县| 铜川市| 安多县| 新竹县| 阿鲁科尔沁旗| 河津市| 永定县| 柏乡县| 那坡县|