Python生成二維碼

依賴庫

Python生成二維碼需要的依賴庫為PIL和QRcode。

坑爹的是,百度了好久都沒有找到PIL,不知道是什么時候改名了,還是其他原因,pillow就是傳說中的PIL。

安裝命令:sudo pip install pillow、sudo pip install qrcode

驗證是否安裝成功,使用命令from PIL import Image,就可以驗證PIL是否安裝成功,qrcode則使用import qrcode,兩條命令不報錯,就說明依賴的環(huán)境已經(jīng)完畢了。

使用qrcode

qrcode使用起來也很簡單,代碼如下:

import qrcode
qr = qrcode.QRCode(
version=7,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4
)
qr.add_data("Hello")
qr.make(fit=True)
img = qr.make_image()
img.save("test.png")

參數(shù) version 表示生成二維碼的尺寸大小,取值范圍是 1 至 40,最小尺寸 1 會生成 21 * 21 的二維碼,version 每增加 1,生成的二維碼就會添加 4 尺寸,例如 version 是 2,則生成 25 * 25 的二維碼。

參數(shù) error_correction 指定二維碼的容錯系數(shù),分別有以下4個系數(shù):

1.ERROR_CORRECT_L: 7%的字碼可被容錯
2.ERROR_CORRECT_M: 15%的字碼可被容錯
3.ERROR_CORRECT_Q: 25%的字碼可被容錯
4.ERROR_CORRECT_H: 30%的字碼可被容錯

參數(shù) box_size 表示二維碼里每個格子的像素大小。

參數(shù) border 表示邊框的格子厚度是多少(默認(rèn)是4)。

運行代碼后,會在代碼的當(dāng)前目錄下生成一個test.png的二維碼,用手機(jī)掃一下就可以看到Hello了。

帶有l(wèi)ogo的二維碼

生成這個二維碼的原理就是利用PIL庫操作icon,把icon放到二維碼的正中間。PIL操作沒有去了解,就直接使用腳本之家的代碼來做事例。

import Image
import qrcode
qr = qrcode.QRCode(
version=2,
error_correction=qrcode.constants.ERROR_CORRECT_H,
box_size=10,
border=1
)
qr.add_data("[http://jb51.net/](http://jb51.net/)")
qr.make(fit=True)
img = qr.make_image()
img = img.convert("RGBA")
icon = Image.open("favicon.png")
img_w, img_h = img.size
factor = 4
size_w = int(img_w / factor)
size_h = int(img_h / factor)
icon_w, icon_h = icon.size
ificon_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("dhqme_qrcode.png")

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Python生成二維碼 要想使用Python自己來作一個二維碼,其實很簡單。首先你需要有Linux環(huán)境,或者在wi...
    羅蓁蓁閱讀 397評論 0 3
  • 本文的實驗環(huán)境是 Python 3.6.1 |Anaconda 4.4.0 (64-bit),Win10 普通二維...
    高正杰閱讀 638評論 0 0
  • 一、生成普通二維碼 簡單用法 高級用法 二、生成帶logo二維碼
    axjldt閱讀 403評論 0 0
  • 用qrcode庫在windows 10 上,還要安裝 Image, colorama . http://wangw...
    愛吃葡萄冰的鯨閱讀 1,825評論 0 0
  • 自信使我們擁有力量,擁有戰(zhàn)勝困難的勇氣,自信是成功的基礎(chǔ)。古往今來的成功人士都具有一個共同的特質(zhì),即自信。在我們的...
    美麗色彩閱讀 602評論 0 1

友情鏈接更多精彩內(nèi)容