首頁 > 軟體

Python生成二維條碼的教學詳解

2022-10-12 14:00:33

交代背景

作為一名合格的 Python 程式設計師,在工作中必然會用到二維條碼相關操作,那如何快速的用 Python 實現呢?彆著急,咱們這篇部落格就為你解決。

文章會為大家帶來最常見,最簡單,最實用的 4 種 Python 二維條碼生成方式。

pyqrcode 實現二維條碼

上來為你展示的就是一款第三方二維條碼模組,開源高效才是當今編碼界的主流。

pyqrcode 是一款 老牌 二維條碼生成模組了,安裝之後三行程式碼就能搞定一個簡單的二維條碼圖片。

pip install pyqrcode

模組安裝之後,直接展示入門 Demo,為了可以生成圖片,還需要額外安裝一個模組,即 pip install pypng

import pyqrcode
import png
qr = pyqrcode.create('夢想橡皮擦')
qr.png('ca.png', scale=5)

執行程式碼,直接生成一個文字二維條碼,由於部分站點遮蔽二維條碼圖片內容,可自行使用手機進行掃碼測試。

除生成 PNG 圖片外,還可以直接生成一個 svg 圖片。

import pyqrcode
import png
qr = pyqrcode.create('夢想橡皮擦')
# qr.png('ca.png', scale=5)
qr.svg("./ca.svg", scale=8, background="white", module_color="#03a9f4")

上述方法中的引數不做特殊說明,相信大家通過引數名直接學習掌握,詳細引數說明也可以閱讀官方手冊,進行簡單搜尋即可找到。

import pyqrcode
import png
qr = pyqrcode.create('夢想橡皮擦')
# qr.png('ca.png', scale=5)
# qr.svg("./ca.svg", scale=8, background="white", module_color="#03a9f4")
qr.png('./code.png', scale=5, m

qrcode 實現二維條碼

第二個推薦的模組與上一模組名稱雷同,也是比較老牌的第三方模組,而且該模組在實戰中出場頻率非常高。

pip install qrcode

為了快速學習,直接檢視範例程式碼:

import qrcode
qr = qrcode.QRCode(
    version=None,
    error_correction=qrcode.constants.ERROR_CORRECT_L,
    border=4,
    box_size=10
)
img = qrcode.make('夢想橡皮擦',version=4,border=4,box_size=12)
img.save('ca.jpg')  # 儲存圖片

qrcode 模組中最重要的方法是 qrcode.QRCode,其引數簡單說明如下:

  • version:二維條碼大小,1-40 不等;
  • error_correction:二維條碼糾錯範圍,4 個常數值在下文說明;
  • box_size:二維條碼中每個小格子包含的畫素數;
  • border:邊框,二維條碼與圖片邊界的距離。

二維條碼糾錯範圍,可以選擇 4 個常數:

  • ERROR_CORRECT_L: 7%以下的錯誤會被糾正;
  • ERROR_CORRECT_M (預設值): 15%以下的錯誤會被糾正;
  • ERROR_CORRECT_Q:25%以下的錯誤會被糾正;
  • ERROR_CORRECT_H:30%以下的錯誤會被糾正。

MyQR 實現二維條碼

又一款二維條碼生成模組,安裝命令如下所示:

pip install MyQR

該模組比較年輕,需要將 pillow 升級到最新版本,使用如下命令:

pip install pillow>=8.3.2

先看一下普通的二維條碼生成:

from MyQR import myqr

myqr.run(words="cacaca", version=9,
         save_name="ca1.png",
         save_dir="./")

該二維條碼模組的一大特色就是可以實現動圖效果,程式碼如下:

from MyQR import myqr

myqr.run(words="https://juejin.cn/user/3966693684027512", version=3, picture="./in.gif", colorized=True,
         save_name="ca.gif",
         save_dir="./")

動圖也給你準備好了。

run() 方法中主要的幾個引數說明如下:

  • words:二維條碼文字內容(不支援中文);
  • picture:背景圖片;
  • colorsize:True,表示生成彩圖;
  • save_name:二維條碼圖片的名字。

Amazing-QR 實現二維條碼

可生成普通二維條碼、帶圖片的藝術二維條碼(黑白與彩色)、動態二維條碼(黑白與彩色)。

安裝命令如下所示:

pip install amzqr

範例程式碼也非常簡單。

# 安裝模組後
from amzqr import amzqr
import os
version, level, qr_name = amzqr.run(
    'cacaca',
    version=1,
    level='H',
    picture=None,
    colorized=False,
    contrast=1.0,
    brightness=1.0,
    save_name='ca_amzqr.png',
    save_dir=os.getcwd()
)

中文識別也不是很好,需要進行修改,如果覺得引數過多,可以直接進行簡化,只保留 words 引數即可。

from amzqr import amzqr
amzqr.run(words='https://juejin.cn/user/3966693684027512')

預設在執行目錄生成一個名稱為 qrcode.png 的圖片。

到此這篇關於Python生成二維條碼的教學詳解的文章就介紹到這了,更多相關Python生成二維條碼內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com