1. 程式人生 > >python二維碼生成器

python二維碼生成器

ins 手機 resize lock 圖片 -c containe 就會 factor

技術分享圖片 周小董簡書主頁二維碼.png

技術分享圖片 周小董博客主頁二維碼.png

現在,我們生活中到處可以看到二維碼。它有啥好處呢?它具有信息容量大、可靠性高、可表示漢字及圖象多種文字信息、保密防偽性強等優點。

我們生成的東西一般都在電腦上。如果弄到移動設備上,用到最多的是掃碼。在移動設備瀏覽器中輸入URL明顯沒有掃描二維碼方便。

就是這個:

技術分享圖片

python 有qrcode庫,很容易就生成二維碼。現在在需要使用Python圖像庫的時候一般是用 Pillow 模塊代替PIL。安裝非常簡單:

pip install pillow

安裝 qrcode 也是類似:

pip install qrcode

在Python中也可以用如下的方式快速生成:

import qrcode
img = qrcode.make(Some data here)

更高級一些的設置需要在Python中引入QRCode類:
示例代碼1:

import qrcode

qr = qrcode.QRCode(version=2, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=1)
qr.add_data(""python愛好部落 snake"")
qr.make(fit
=True) img = qr.make_image() img.save("snake_qrcode.png")

生成的結果為:

技術分享圖片

微信掃描的結果是:

技術分享圖片

參數 version 表示生成二維碼的尺寸大小,取值範圍是 1 至 40,最小尺寸 1 會生成 21 * 21 的二維碼矩陣,version 每增加 1,生成的二維碼就會添加 4 個單位大小,例如 version 是 2,則生成 25 * 25 尺寸大小的二維碼。

參數 error_correction 指定二維碼的容錯系數,分別有以下4個系數:
ERROR_CORRECT_L: 7%的字碼可被容錯


ERROR_CORRECT_M: 15%的字碼可被容錯
ERROR_CORRECT_Q: 25%的字碼可被容錯
ERROR_CORRECT_H: 30%的字碼可被容錯

參數 box_size 表示二維碼裏每個格子的像素大小。
參數 border 表示邊框的格子寬度是多少(默認是4)。

示例代碼2(生成帶有圖標的二維碼):

import qrcode
from PIL import Image

qr = qrcode.QRCode(
    version=2,
    error_correction=qrcode.constants.ERROR_CORRECT_H,
    box_size=10,
    border=1
)
qr.add_data("python愛好部落, python愛好者的家園")
qr.make(fit=True)
img = qr.make_image()

img = img.convert("RGBA")
img_w, img_h = img.size
factor = 3
size_w = int(img_w / factor)
size_h = int(img_h / factor)

icon = Image.open("snake.png")
icon_w, icon_h = icon.size
if icon_w > size_w:
    icon_w = size_w
if icon_h > size_h:
    icon_h = size_h
icon = icon.resize((icon_w, icon_h), Image.ANTIALIAS)

w = int((img_w - icon_w) / 2)
h = int((img_h - icon_h) / 2)
img.paste(icon, (w, h), icon)
img.save("snake_love_qrcode.png")

如此,就將以下圖片

技術分享圖片

生成二維碼:

技術分享圖片

如果是下載URL,掃描後就可以直接下載了。
放到jenkins上,每次生成的build,直接掃碼就可以下載到手機上了。

python二維碼生成器