天天看點

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

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

本文作者:HelloGitHub-LITTLECHIEH

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

一、介紹

1.1 二維碼

二維碼又稱二維條碼,常見的二維碼為 QR Code,QR 全稱 Quick Response。是一個近幾年來移動裝置上超流行的一種編碼方式,在現在的生活中二維碼随處可見。我們可以用它支付、浏覽網站等,為什麼他會這麼流行?下面說幾個特點:

  1. 可存儲的資訊量大:可容納多達 1850 個大寫字母或 2710 個數字或 1108 個位元組或 500 多個漢字。
  2. 容錯能力強:具有糾錯功能,這使得二維條碼因穿孔、污損等引起局部損壞時,照樣可以正确得到識讀,損毀面積達 30% 仍可恢複資訊。
  3. 譯碼可靠性高:它比普通條碼譯碼錯誤率百萬分之二要低得多,誤碼率不超過千萬分之一。
  4. 雷射可識别。

比如我們現在常見的公衆号二維碼,他就利用了二維碼容錯能力強的特點,在二維碼中間加入了公衆号的圖示。雖然中間的圖檔遮蓋了一部分二維碼的真實資料,但因為其強大的容錯能力,是以并沒有影響二維碼要傳遞的資料。

1.2 二維碼的組成

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

1.3 生成二維碼庫

二維碼是一個很友善的傳遞資訊的載體,但是像上面黑白的二維碼感覺非常缺少‘靈魂’。下面就介紹今天的主角:qrcode

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

項目位址:https://github.com/sylnsfar/qrcode

二、qrcode 庫的優點

為什麼需要使用到這個二維碼生成器來生成二維碼呢?

  1. 使用簡單:快速上手,僅需 2 行代碼,即可開始使用!
  2. 在二維碼中增加圖檔:可以讓使用者通過二維碼中的圖檔,初步了解該二維碼是和什麼東西有關。(該二維碼加入了 HG 的 logo)
  1. 在二維碼中增加動圖:通過動圖,讓二維碼活過來。
  1. 使用方式多樣:有以下的 3 種使用方式
    • 指令行方式
    • 導入檔案方式(import)
    • 可執行檔案
  2. 用就對了:我不要你覺得,我要我覺得 滑稽

三、快速上手

示範環境

作業系統: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. 先準備一張圖檔放在目錄下(方形的圖檔效果最好)
    講解開源項目:用 Python 生成有“靈魂”的二維碼
  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.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,然後‘回車‘
講解開源項目:用 Python 生成有“靈魂”的二維碼
  1. 切換盤符的坑:直接切換盤符會失敗
講解開源項目:用 Python 生成有“靈魂”的二維碼

4.3 二維碼分類介紹

二維碼有以下幾種分類

  1. 黑白和彩色碼
    • 黑白碼
    • 彩色碼
  2. 融合和視覺碼
    • 融合碼:就是将内容與二維碼融合使它們成為一個整體,圖檔由二維碼組成,二維碼就是圖檔的一部分。這種比較适合使用構造簡單的圖檔或者文字做美化主體内容
    • 視覺碼:以圖檔為背景,再在圖檔上建構很多特殊的點,這些點不會影響背景的視覺效果
  3. 藝術碼
    • 藝術二維碼,就是将二維碼進行的各個“碼眼”按照設計師的構思進行分析、拆解、合并,再在那些“碼眼”區域填充上一些小素材元素,最後形成一個别具特色二維碼。
      講解開源項目:用 Python 生成有“靈魂”的二維碼

五、最後

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

有好玩的庫,但不會用,看着幹着急?歡迎告訴我們,同時也歡迎加入我們。我們的願景:

“讓對開源感興趣的人不再畏懼,開源項目的發起者不再孤單。”

六、參考資料

  • 小技巧|還在用黑白二維碼?弱爆了!教你點新的技能!
  • PDF 淺談 QR Code
  • QRcode

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