前端: 如何利用Qrcode製作一個二維碼生成器?

2021-01-09 51CTO

玲琅滿目的二維碼在我們的都市和朋友圈中隨處可見, 很多平臺都提供了定製二維碼的服務, 那麼作為一名程式設計師, 我們如何自己實現一個簡單的二維碼生成器呢? 接下來筆者就來帶大家一起利用Qrcode實現一個二維碼生成器.

效果預覽

由上圖可以看出我們可以自定義二維碼的:

文本(比如url, 一段文本) 二維碼尺寸 二維碼背景色 二維碼前景色 二維碼級別 自定義二維碼中展示的icon以及icon的位置, 大小

在開發之前我們需要先了解:

什麼是QR Code碼 Qrcode的基本用法 以及如何設計一個健壯的組件

筆者不會介紹二維碼的詳細實現原理, 因為相關文章很多, 我們從實用的角度出發來解決實際問題.

QR Code碼

QR Code碼,是由 Denso 公司於1994年9月研製的一種矩陣二維碼符號,它具有一維條碼及其它二維條碼所具有的信息容量大、可靠性高、可表示漢字及圖象多種文字信息、保密防偽性強等優點。

關於QR Code碼我們需要知道2個核心的知識, 也就是 QR Code數據表示方法以及糾錯能力.

QR Code數據表示方法 : 深色模塊表示二進位"1",淺色模塊表示二進位"0"。 糾錯能力

L級:約可糾錯7%的數據碼字

M級:約可糾錯15%的數據碼字

Q級:約可糾錯25%的數據碼字

H級:約可糾錯30%的數據碼字

了解以上兩個知識對於我們實現定製二維碼非常由幫助. 在使用Qrcode這個插件時也會用到.

Qrcode基本使用記憶如何包裝成自定義受控組件

因為我們大多數項目目前都採用react或者vue開發了, 所以我們直接用對應的插件版本即可, 這裡筆者使用的是qrcode.react.

從使用量上看這個庫還是非常不錯的, 我們只需要2-3步就可以快速利用它生成一個靜態二維碼.要想實現一個二維碼生成器, 首先我們需要能自定義二維碼的屬性, 也就是筆者開頭列舉的幾項, 所以這些屬性我們完全要從外部獲取, 也就是說二維碼組件我們要做成受控的, 如下:


由上圖我們得到了如下的react組件模式:

<div className={styles.codeWrap}>   <QRCode value={url} size={codeSize} bgColor={bgColor} fgColor={fgColor} imageSettings={{src: imgUrl[0].url, x: null, y: null, excavate: true, height: imgH, width: imgW}} /> </div> 

其實就需要用到我們強大的表單渲染器了, 我們需要給qrcode組件對接一個表單編輯器, 也就是下圖所示的FormEditor:


為了簡單起見筆者直接用H5-Dooring提供的FormEditor, 我們只需要寫如下json結構就可以自動生成一個Form編輯器, 如下:

const Qrcode: IQrcodeSchema = {   editData: [     {       key: 'url',       name: 'url地址',       type: 'Text',     },     {       key: 'codeSize',       name: '二維碼尺寸',       type: 'Number',     },     {       key: 'bgColor',       name: '背景色',       type: 'Color',     },     {       key: 'fgColor',       name: '前景色',       type: 'Color',     },     {       key: 'level',       name: '等級',       type: 'Select',       range: [         {           key: 'L',           text: '低',         },         {           key: 'M',           text: '中',         },         {           key: 'Q',           text: '良',         },         {           key: 'H',           text: '高',         },       ],     },     {       key: 'imgUrl',       name: '二維碼圖標',       type: 'Upload',       isCrop: true,       cropRate: 1,     },     {       key: 'imgW',       name: '圖標寬度',       type: 'Number',     },     {       key: 'imgH',       name: '圖標高度',       type: 'Number',     },   ],   config: {     url: 'https://github.com/MrXujiang/h5-Dooring',     codeSize: 180,     bgColor: 'rgba(255,255,255,1)',     fgColor: 'rgba(0,0,0,1)',     level: 'L',     imgUrl: [       {         uid: '001',         name: 'image.png',         status: 'done',         url: `http://xxxx.jpg`,       },     ],     imgW: 48,     imgH: 12   }, };  export default Qrcode; 

此時我們就能渲染出文章開頭的二維碼生成器了, 我們可以定製自己喜歡的二維碼風格和icon. 編輯器中的等級選項也就是筆者在開頭介紹的QR Code的糾錯能力, 我們可以自定義選擇我們需要的等級.

目前筆者已經把二維碼生成器集成到開源項目H5-Dooring中了,在線把玩地址(電腦端體驗更佳): H5編輯器 | 更新二維碼生成器組件

【編輯推薦】

【責任編輯:

姜華

TEL:(010)68476606】

點讚 0

相關焦點

  • 二維碼生成器
    ; 2.可以將生成的二維碼分享到朋友圈裡面,和好友一起玩; 3.可以在相冊中方便的找到生成的二維碼,並且將裡面的信息讀取出來; 4.可以添加二維碼的logo,十分實用 付費信息:完全免費 願天下人所有的付出都能得到回報——天道酬勤 二維碼是當前移動網際網路非常常用的一個東西,有二維碼名片用來加好友,二維碼付款碼輕鬆支付等等;
  • JS+jQuery+qrcode.js實現前端生成二維碼
    為便於理解和演示,我做了一個簡單的HTML頁面(雖然我用的是Visual Studio創建的ASP頁面,但毫不影響你在其他地方用到本次演示的代碼)。實現過程是頁面打開時默認展示一個二維碼,用戶可以更改文本內容,更改生成二維碼的參數,例如尺寸、前景色、背景色等,點擊【生成二維碼】按鈕即可在下方生成一個二維碼,用手機微信或者QQ、百度等都可以識別輸入的內容,當輸入網址時還可以直接跳轉到網站頁面。下圖為效果樣式。
  • 中年大叔學編程-用PyQt做一個簡單的二維碼生成器
    算了,我們還是繼續學習吧 前面簡單地嘗試了一下PyQt,這裡我們就結合PyQt來給之前生成二維碼的腳本做個可視化的界面。首先,打開designer,新建一個窗口並保存為qrcodeui.ui然後拖拽兩個GroupBox並分別將其title屬性改為二維碼參數和二維碼展示我們在二維碼參數的GroupBox分別拖拽一個label、一個text和兩個button,在二維碼展示的GroupBox中拖拽一個label用於展示二維碼
  • "藏毒"二維碼製作門檻幾乎為零:10元就能買個生成器!
    對此,阿拉木斯指出,二維碼亂象頻出,想要有效治理,就需先理清其產生的根源。製作門檻幾乎為零對於花樣不斷翻新的二維碼騙局,專家認為這與二維碼本身的特殊性有著莫大關係。中國政法大學傳播法中心副主任朱巍介紹,二維碼是一個具有可讀性的特定圖形的存儲器,其所存儲的內容存在於二維碼背後的連結。
  • 分享5個國外最好的在線二維碼生成器
    目前,不論是公司網站/個人網站,甚至媒介平臺都喜歡貼上自己的二維碼(QR),一來可以迎合市場的需求,二來獲取眾人的眼球。打開我們的網站,看 到路邊的海報,如果看到二維碼,我們是不是都喜歡掏出手機然後對準進行掃描查看到底是什麼?
  • 在條碼生成器裡快速批量製作條碼
    條碼的製作列印需要藉助條碼生成器,而常見的在線的條碼碼生產器一般都是單個生成的,如果想要批量生成條形碼需要藉助專門的條碼生成器來實現。以Label mx條碼生成器為例,演示一下如何條碼如何快速生成。1.啟動軟體,使用一維條碼工具在頁面中畫出一個一維碼,通過選擇條碼類型,輸入條碼數據完成起始條碼的設置。2、批量生成條碼常見有兩種,相同條碼的批量製作和流水號條碼的批量製作。如果是流水號條碼批量生成,點擊設計好的條碼,在右側屬性欄中的條碼選項中選擇「流水條碼」。如果是相同條碼的重複製作,不需要進行任何操作。
  • QR Blaster:多彩又個性的二維碼生成器
    QR Blaster還記得之前酷站介紹過的個性多彩QR碼生成器Unitag.fr麼?是的,QR碼也應該有閃亮驚豔的一天,一改之前黑白兩色古板的造型!酷站今天推 薦的QR Blaster仍是一款免費在線自定義QR碼生成器。QR碼應用範圍更廣泛,製作步驟更簡單。
  • 《缺氧》海藻氧氣生成器怎麼做 海藻氧氣生成器製作介紹
    導 讀 《缺氧》海藻氧氣生成器製作及用途介紹。
  • 「狗屁不通生成器」的文章,為什麼能如此「狗屁不通」?
    非要遵守規則完成任務,合理利用「Ctrl c+v」就完事了。     其中有一個與眾不同的技術流選手,知乎用戶「KE meng」,也就是「狗屁不通文章生成器」的創作者,他聲稱「隨便」用Python寫了個項目,並把一併附上生成的文章。
  • QRBTF - 製作漂亮有趣二維碼的免費開源在線工具
    這是一個手機和電腦通用在線應用,用來生成各種設計感強、好玩有趣的二維碼。介紹無論是線下商家、自媒體運營者、策展人還是紙媒編輯,二維碼都是轉化最重要的入口。強大的參數調節使用體驗生成二維碼我們一般想到「某料二維碼」工具,生成都二維碼毫無設計可言,往往需要用設計軟體修飾才能用在作品上。而 QRBTF 生成的二維碼充滿科技感,在千篇一律的二維碼中確實非常亮眼。
  • 谷歌測試Chrome全新共享界面:加入二維碼生成器並內置截圖工具
    現在,谷歌正在為Chrome測試一款新的共享彈窗(share flyout),其中包括了一個二維碼生成器。 外媒AndroidPolice發現,新的共享界面似乎增加了一個額外的選項來共享特定於瀏覽器的內容
  • 運營技巧-如何將文字連結轉換成二維碼 文字轉換二維碼教程
    相信不少的小夥伴在生活中都遇到了想要將文字轉換成二維碼的情景,將連接轉換成二維碼可以有效的節約推廣的精力,有時候也可以避免一些平臺禁止添加超連結的情形。將文字轉換成二維碼不失為一種很好的信息傳達方式,將編輯好的文字轉換成為二維碼存儲,給你的好朋友讓他掃一下,說不定有意外的驚喜哦!
  • 二維碼的前世今生
    通過智慧型手機、平板電腦等移動智能終端掃描黑白相間的字符,便能輕鬆跳轉到另一個頁面,給用戶使用帶來了極大的便利和娛樂體驗,同時也成為連接線上、線下的一個重要通道,這就是大家熟知的「二維碼」。毫不誇張地說,二維碼是移動網際網路「入口」。伴隨著物聯網的蓬勃發展,二維碼被應用到各行各業的日常經營與生活中。
  • ——二維碼亂象調查
    據了解,目前我國廣泛使用的二維碼為源於日本的快速響應碼(QR碼),由於當時國內沒有自主智慧財產權的二維碼,市場幾乎被QR碼佔據。QR碼沒有在國內申請專利,採取了免費開放的市場策略。「這也意味著誰都可以通過網絡下載二維碼生成器。只需要將發布的內容粘貼到二維碼生成器上,軟體隨即生成用戶所需的二維碼。」杭州某網絡安全公司工程師鄭孵說。
  • 女子公司信息遭冒用生成二維碼 騙刷單人萬元
    在王女士提供的一位來電者的催退錢簡訊中,記者看到如下內容,「大騙子,你們騙一個窮學生的錢就不會覺得良心不安嗎,做什麼不好偏做這種勾當,你們騙的都是別人的血汗錢,都是別人的生活費,你們騙去後用著心安嗎,大騙子....。。」。來電者是貴州某大學大二的學生,她對記者講述了整個過程:「23日,我手機上收到一條『您的淘寶網買家信譽良好,現誠聘您利用空閒時間來為各大店鋪刷信譽。
  • 類似傻瓜文案生成器的有哪些?微博超火生成器網頁地址大全[視頻...
    傻瓜文案生成器的玩法很多,微博上也出現了很多熱門的生成器玩法,這次小編會分享一些超級火爆的生成器,下面就是這次小編要給大家分享的內容,想要知道傻瓜文案生成器的玩法和其他生成器的入口,都可以參考下面的攻略哦!
  • 如何python創建炫酷的動態二維碼
    二維碼在時下是非常流行的,它不受地域和環境限制都能很好的將自己的信息推廣出去。但我們平時見到的二維碼都是四四方方的黑白格組成。今天教大家如何一步一步去製作一個炫酷的二維碼這個需要用到我們的python語言,並且需要安裝一個製作二維碼的庫Myqr第一步安裝Myqr,安裝python就不在介紹了,安裝Myqr庫。
  • 簡單3步,完成在線生成二維碼
    隨著網際網路的不斷發展,現在掃碼訂餐,掃碼關注,掃碼參加活動等等已經屢見不鮮,二維碼的應用在我們生活中的方方面面。現在設計二維碼也非常的簡單,網上有很多的二維碼生成器,只需要幾步簡單的操作就能夠完成。比如使用找圖設計網站就能夠輕鬆的完成二維碼設計。點擊首頁的二維碼製作,進入專門設計二維碼的頁面,可以對自己已有的二維碼案進行樣式修改,還可以通過連結,文本,微信公眾號,名片,地圖,來製作二維碼。操作非常的簡單,設計完成後點擊下載就可以了。
  • 動態二維碼製作新手入門教程
    剛給大家分享了一篇創意二維碼製作教程,今天再給大家分享一篇動態二維碼制製作的新手入門教程,算是上一篇二維碼製作教程的輔助篇。
  • 我們設計了一個動森語音生成器,希望你能玩的開心
    其實這是這款遊戲非常具有特色的一個設計,不同語言版本下的」狸語「都是不同的,製作組是如何做到創造這樣一種完全非人的語言,又讓你聽起來非常熟悉的? 在《裡面那似乎能聽懂的「狸語」是怎麼做出來的?》這期電臺節目裡,重輕老師分享了一套他和 xshaoduo 總結的《集合啦!動物森友會》中角色語音的製作理論,根據他的這套理論我們合作設計出來一套機核動森狸語生成器。