天天看點

python生成二維碼_使用python生成二維碼

1.python-qrcode是個用來生成二維碼圖檔的第三方子產品,依賴于 PIL 子產品和 qrcode 庫。

首先,我們要安裝三個子產品,qrcode,image,PIL。

pip install qrcode

pip install image

PIL:Python Imaging Library,已經是Python平台事實上的圖像處理标準庫了。PIL功能非常強大,但API卻非常簡單易用。

在Debian/Ubuntu Linux下直接通過apt安裝:

$ sudo apt-get install python-imaging

Mac和其他版本的Linux可以直接使用easy_install或pip安裝,安裝前需要把編譯環境裝好:

$ sudo easy_install PIL

如果安裝失敗,根據提示先把缺失的包(比如openjpeg)裝上。

Windows平台就去PIL官方網站下載下傳exe安裝包。

2.簡單用法

import qrcode

img = qrcode.make('simpleqrcode')

img.save('D:/simpleqrcode.jpg')

#img.show()

3.進階用法

python生成二維碼_使用python生成二維碼

import qrcode

qr=qrcode.QRCode(version = 2,error_correction = qrcode.constants.ERROR_CORRECT_L,box_size=10,border=10,)

qr.add_data('http://www.cnblogs.com/sfnz/')

qr.make(fit=True)

img = qr.make_image()

img.show()

#img.save('D:/test.jpg')

python生成二維碼_使用python生成二維碼

4.帶有logo圖案的二維碼

python生成二維碼_使用python生成二維碼

from PIL import Image

import qrcode

qr = qrcode.QRCode(version=5,error_correction=qrcode.constants.ERROR_CORRECT_H,box_size=8,border=4)

qr.add_data("http://www.cnblogs.com/sfnz/")

qr.make(fit=True)

img = qr.make_image()

img = img.convert("RGBA")

#logo="D:/favicon.jpg"

icon = Image.open("D:/favicon.jpg")

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

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)

icon = icon.convert("RGBA")

img.paste(icon,(w,h),icon)

#img.show()

img.save('D:/createlogo.jpg')

python生成二維碼_使用python生成二維碼

參數含義:

version:值為1~40的整數,控制二維碼的大小(最小值是1,是個12×12的矩陣)。 如果想讓程式自動确定,将值設定為 None 并使用 fit 參數即可。

error_correction:控制二維碼的錯誤糾正功能。可取值下列4個常量。

ERROR_CORRECT_L:大約7%或更少的錯誤能被糾正。

ERROR_CORRECT_M(預設):大約15%或更少的錯誤能被糾正。

ROR_CORRECT_H:大約30%或更少的錯誤能被糾正。

box_size:控制二維碼中每個小格子包含的像素數。

border:控制邊框(二維碼與圖檔邊界的距離)包含的格子數(預設為4,是相關标準規定的最小值)。

img.save:是将生成二維碼圖檔儲存到哪裡。

參考文檔:

http://www.xuchanggang.cn/archives/1069.html

http://www.cnblogs.com/linjiqin/p/4140455.html

http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/00140767171357714f87a053a824ffd811d98a83b58ec13000

官網及參考手冊

http://pythonware.com/products/pil/

http://effbot.org/imagingbook/