講解開源項目:用 Python 生成有「靈魂」的二維碼

<p align="center">本文做者:HelloGitHub-<strong>LITTLECHIEH</strong></p>git

這是 HelloGitHub 推出的《講解開源項目》系列,今天給你們推薦一個 Python 開源生成二維碼的項目——qrcodegithub

1、介紹

1.1 二維碼

二維碼又稱二維條碼,常見的二維碼爲 QR Code,QR 全稱 Quick Response。是一個近幾年來移動設備上超流行的一種編碼方式,在如今的生活中二維碼隨處可見。咱們能夠用它支付、瀏覽網站等,爲何他會這麼流行?下面說幾個特色:編程

  1. 可存儲的信息量大:可容納多達 1850 個大寫字母或 2710 個數字或 1108 個字節或 500 多個漢字。
  2. 容錯能力強:具備糾錯功能,這使得二維條碼因穿孔、污損等引發局部損壞時,照樣能夠正確獲得識讀,損毀面積達 30% 仍可恢復信息。
  3. 譯碼可靠性高:它比普通條碼譯碼錯誤率百萬分之二要低得多,誤碼率不超過千萬分之一。
  4. 激光可識別。

好比咱們如今常見的公衆號二維碼,他就利用了二維碼容錯能力強的特色,在二維碼中間加入了公衆號的圖標。雖然中間的圖片遮蓋了一部分二維碼的真實數據,但由於其強大的容錯能力,因此並無影響二維碼要傳遞的數據。bash

1.2 二維碼的組成

一圖勝千言,好了這裏二維碼的基本知識就介紹完成了。工具

1.3 生成二維碼庫

二維碼是一個很方便的傳遞信息的載體,可是像上面黑白的二維碼感受很是缺乏‘靈魂’。下面就介紹今天的主角:qrcode網站

這是一個由 Python 編寫的二維碼生成器,支持生成 GIF 動態、圖片二維碼,讓你的二維碼變得有趣起來。ui

項目地址:https://github.com/sylnsfar/qrcode編碼

2、qrcode 庫的優勢

爲何須要使用到這個二維碼生成器來生成二維碼呢?spa

  1. 使用簡單:快速上手,僅需 2 行代碼,便可開始使用!
  2. 在二維碼中增長圖片:可讓用戶經過二維碼中的圖片,初步瞭解該二維碼是和什麼東西有關。(該二維碼加入了 HG 的 logo)

  1. 在二維碼中增長動圖:經過動圖,讓二維碼活過來。

  1. 使用方式多樣:有如下的 3 種使用方式
  2. 用就對了:我不要你以爲,我要我以爲 滑稽

3、快速上手

演示環境操作系統

操做系統:Windows | Python 版本:3.5

3.1 安裝

咱們經過 Python 的 pip 包管理工具進行安裝:

pip install myqr

注:此處可能須要升級 pip,升級命令 pip install --upgrade pip

安裝完成以後,就能夠直接在命令行中使用了!下面逐一講解各類二維碼的生成方法

3.2 普通二維碼

首先生成一個普通二維碼

  1. 打開 cmd

  2. 輸入命令

    myqr https://github.com -n helloword.png

    參數 -n:生成二維碼的文件名

這樣就會獲得一個二維碼圖片,生成的圖片保存在了當前目錄,後面能夠經過傳入參數修改默認目錄。

3.3 彩色二維碼

  1. 先準備一張圖片放在目錄下(方形的圖片效果最好)

  2. 將圖片名稱修改成 github.jpg(後綴根據本身的照片格式而定)

  3. 在命令行中輸入:

    myqr https://github.com -n mypicture.png -p github.jpg -c

    參數:

    • -n:生成二維碼的名稱
    • -p:二維碼加入的圖片,支持 jpg、gif、png 格式
    • -c:選擇是否生成彩色二維碼,若是不設置默認爲黑白
    • 更多參數請看下面附錄部分

3.4 動態二維碼

步驟和彩色二維碼的方法一致,可是須要注意:

  1. 增長圖片爲 gif
  2. 修改生成二維碼的後綴爲 gif

4、附錄

4.1 MyQR 參數

從官方文檔整理的經常使用參數以下:

  • -n:生成二維碼的名稱
  • -p:二維碼加入的圖片,支持.jpg.gif.png.bmp 格式
  • -c:選擇是否生成彩色二維碼,若是不設置默認爲黑白
  • -v:控制邊長,範圍是 1 至 40,數字越大邊長越大
  • -l:控制糾錯水平,範圍是 L、M、Q、H 從左到右依次升高
  • -d:控制輸出二維碼的存儲位置
  • -con:用以調節圖片的對比度,1.0 表示原始圖片,更小的值表示更低對比度,更大反之。默認爲 1.0
  • -bri:用來調節圖片的亮度,其他用法和取值與 -con 相同

4.2 cmd 切換盤符

打開命令行有個小技巧,能夠將 cmd 迅速切換到想要的目錄,避免了切換盤符的麻煩:

  1. 利用文件管理,找到目標文件夾

  2. 頂部地址欄輸入 cmd,而後‘回車‘

  1. 切換盤符的坑:直接切換盤符會失敗

4.3 二維碼分類介紹

二維碼有如下幾種分類

  1. 黑白和彩色碼

    • 黑白碼
    • 彩色碼
  2. 融合和視覺碼

    • 融合碼:就是將內容與二維碼融合使它們成爲一個總體,圖片由二維碼組成,二維碼就是圖片的一部分。這種比較適合使用構造簡單的圖片或者文字作美化主體內容
    • 視覺碼:以圖片爲背景,再在圖片上構建不少特殊的點,這些點不會影響背景的視覺效果

  3. 藝術碼

    • 藝術二維碼,就是將二維碼進行的各個「碼眼」按照設計師的構思進行分析、拆解、合併,再在那些「碼眼」區域填充上一些小素材元素,最後造成一個別具特點二維碼。

5、最後

以上就是本篇文章的所有內容了,相信你對二維碼更加了解了。而且對 qrcode 庫的經常使用參數有了必定了解,那就快去生成一個有趣、有‘靈魂’的二維碼吧!

有好玩的庫,但不會用,看着乾着急?歡迎告訴咱們,同時也歡迎加入咱們。咱們的願景: 「讓對開源感興趣的人再也不畏懼,開源項目的發起者再也不孤單。」

6、參考資料


『講解開源項目系列』——讓對開源項目感興趣的人再也不畏懼、讓開源項目的發起者再也不孤單。跟着咱們的文章,你會發現編程的樂趣、使用和發現參與開源項目如此簡單。歡迎留言聯繫咱們、加入咱們,讓更多人愛上開源、貢獻開源~

相關文章
相關標籤/搜索