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

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

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

文家朝 楊輝

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

關鍵詞:二維碼;QR碼;Zxing;開源庫;二維碼生成

中圖分類號:TP311? ? ? 文獻標識碼:A

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

1 二維碼的由來

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

2 現階段二維碼如何生成

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

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

這兩種方式各有優劣,下面將分別進行簡單介紹。

2.1 二維碼服務提供商生成

服務提供商生成二維碼有它的優點和缺點,下面分別進行分析。

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

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

2.2 使用開源庫生成

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

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

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

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

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

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

3 技術路線及問題解決

3.1 網站建立

本系統使用Apache Tomcat作為網站服務器,集成開發環境為Eclipse,在前臺的開發上面,使用Dreamweaver輔助開發。

3.2 表單的提交

本系統涉及三個表單的提交,分別對應文本、網址和文件上傳。通過三個表單提交到三個對應的Servlet。

3.3 用到的ZXing包

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

3.4 中文亂碼解決

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

3.4.1 ZXing中文亂碼

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

textString = “這是一段中文”;

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

3.4.2 Servlet中文亂碼

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

response.setCharacterEncoding(“UTF-8”);

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

request.setCharacterEncoding(“UTF-8”);

3.4.3 jsp頁面中文亂碼

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

3.5 ZXing生成二維碼的步驟

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

4 系統測試

系統測試分為文本生成二維碼、網址生成二維碼、文件上傳生成二維碼三種。

4.1 文本生成二維碼

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

4.2 網址生成二維碼

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

4.3 文件上傳生成二維碼

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

5 創新點及不足

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

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

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

參考文獻:

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

[2] 施連敏,郭翠珍,蓋之華,等.基于二維碼的綠色食品溯源系統的設計與實現[J].制造業自動化,2013,35(16):144-146.

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

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

[5] 管小衛.基于Python的二維碼生成與識別[J].科學技術與創新,2020(25):99-100.

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

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

【通聯編輯:謝媛媛】

主站蜘蛛池模板: 精品国产一区91在线| 亚洲最新在线| 精品国产网| 久久精品丝袜| 久久国产精品国产自线拍| 91久久精品国产| 91国语视频| 91无码视频在线观看| 国产丰满成熟女性性满足视频 | 欧美国产综合视频| 国产亚洲精品自在久久不卡| 久久久精品国产亚洲AV日韩| 色悠久久久久久久综合网伊人| 精品91视频| 亚洲成人播放| 久久亚洲精少妇毛片午夜无码| 国产乱子伦视频在线播放| 宅男噜噜噜66国产在线观看| yy6080理论大片一级久久| 久久中文无码精品| 欧美特级AAAAAA视频免费观看| 极品私人尤物在线精品首页| 国产va欧美va在线观看| 国产鲁鲁视频在线观看| 亚洲91精品视频| 2021国产v亚洲v天堂无码| 国产在线第二页| 超薄丝袜足j国产在线视频| 99re热精品视频中文字幕不卡| 成人福利视频网| 久久久精品无码一区二区三区| a级毛片免费网站| 高清国产va日韩亚洲免费午夜电影| 福利视频99| 亚洲中文字幕日产无码2021| 亚洲毛片一级带毛片基地| 无码一区18禁| 国产主播在线一区| 91精品视频在线播放| 黄色免费在线网址| 欧美国产中文| 波多野结衣中文字幕一区二区| 国产白浆在线| 亚洲一区色| 伊人婷婷色香五月综合缴缴情| 久久亚洲国产视频| 久久综合伊人 六十路| 深爱婷婷激情网| 国产欧美成人不卡视频| 女人18毛片一级毛片在线| 免费激情网址| 欧美黄网站免费观看| 国产精品黑色丝袜的老师| 国产精品三级专区| 国产精品亚洲五月天高清| 人妻丰满熟妇av五码区| 鲁鲁鲁爽爽爽在线视频观看| 潮喷在线无码白浆| 欧美日韩va| 99在线视频免费观看| 青青草久久伊人| 免费看黄片一区二区三区| 青青青视频蜜桃一区二区| 日韩毛片免费| 青青草国产免费国产| 国产精品久久久精品三级| 中文无码精品a∨在线观看| 久久综合一个色综合网| 日本欧美中文字幕精品亚洲| 四虎永久免费网站| 欧美亚洲国产精品第一页| 亚洲无码高清视频在线观看 | 亚洲乱码在线视频| 亚洲人成网站18禁动漫无码| 波多野结衣久久高清免费| 久久五月天综合| 亚洲av无码久久无遮挡| 日韩一级毛一欧美一国产| 97国产成人无码精品久久久| 久久久久久久久亚洲精品| 精品国产三级在线观看| 精品国产免费观看一区|