欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Python二維碼生成庫qrcode安裝和使用示例

系統 1938 0

二維碼簡稱 QR Code(Quick Response Code),學名為快速響應矩陣碼,是二維條碼的一種,由日本的 Denso Wave 公司于 1994 年發明。現隨著智能手機的普及,已廣泛應用于平常生活中,例如商品信息查詢、社交好友互動、網絡地址訪問等等。

安裝 Python 的二維碼庫 -- qrcode

由于生成 qrcode 圖片需要依賴 Python 的圖像庫,所以需要先安裝 Python 圖像庫 PIL(Python Imaging Library),不然會遇到 "ImportError: No module named Image" 的錯誤:

復制代碼 代碼如下:

sudo easy_install pil

如果安裝 pil 時出現以下錯誤:

復制代碼 代碼如下:

_imagingft.c:73:10: fatal error: 'freetype/fterrors.h' file not found
#include
???????? ^
1 error generated.
error: Setup script exited with error: command 'cc' failed with exit status 1

在 StackOverflow 上發現是 Mac 下所依賴的 FreeType 鏈接變更問題,解決如下:

復制代碼 代碼如下:

ln -s /usr/local/include/freetype2 /usr/local/include/freetype
sudo easy_install -U pil

安裝 qrcode 庫:

復制代碼 代碼如下:

sudo easy_install qrcode

成功安裝后,即可以在終端里使用 qr 命令生成二維碼了:

復制代碼 代碼如下:

qr "Just a test" > test.png
qr --help

示例代碼

復制代碼 代碼如下:

import qrcode
?
?
qr = qrcode.QRCode(
??? version=2,
??? error_correction=qrcode.constants.ERROR_CORRECT_L,
??? box_size=10,
??? border=1
)
qr.add_data("http://jb51.net/")
qr.make(fit=True)
img = qr.make_image()
img.save("dhqme_qrcode.png")

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

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

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

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

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

運行上面代碼會生成敝站的一個 QR Code:

Python二維碼生成庫qrcode安裝和使用示例_第1張圖片

生成帶有圖標的二維碼

二維碼的容錯系數(上面所指的 error_correction)越高,生成的二維碼則可允許的殘缺率越大,且二維碼的數據主要保存在圖片的四個角上,所以在二維碼中間放一個小圖標,對二維碼的識別也是不受多大影響的。

對于插入在二維碼上的圖標大小,這里指定限制圖標的大小尺寸最大是二維碼長寬的 1/4,以免殘缺太大,影響識別。

最后結合 Python 圖像庫(PIL)的操作,把圖片黏貼(paste)在二維碼圖片的中間,便可以生成一個帶有圖標的二維碼,具體操作代碼如下:

復制代碼 代碼如下:

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/")
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
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("dhqme_qrcode.png")

Python二維碼生成庫qrcode安裝和使用示例_第2張圖片

PS:本站還提供了一個功能非常強大的二維碼生成工具,感興趣的朋友可以參考一下:

http://tools.jb51.net/transcoding/jb51qrcode


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 天天干电影 | 久久不射网 | 老司机免费福利视频无毒午夜 | 欧美大片在线免费观看 | 免费毛片在线视频 | 久久精品一区二区三区不卡牛牛 | 国产在线小视频 | 黄色入口网站 | 成人久久18免费观看 | 日韩成人黄色片 | 欧美激情一区二区亚洲专区 | 黄色激情小视频 | 日韩中文字幕免费在线观看 | 亚洲精品九九 | 亚洲激情视频在线观看 | 91久久综合九色综合欧美亚洲 | 欧美a级片视频 | 91极品在线 | 亚洲91精品 | 色婷婷色婷婷 | 一级做性色a爰片久久毛片 亚洲午夜精品久久久久久app | 伦理午夜电影免费观看 | 大片一级 | 久久成| 中文字幕日本电影 | 国产亚洲精品sese在线播放 | www日韩免费高清视频 | 欧美电影网站在线观看影片 | 欧美精品99| 日韩精品一区二区三区在线播放 | www.91在线| www.伊人 | 久久久久久9 | 亚洲日本中文字幕永久 | 成人一级大片 | 污污网站国产精品白丝袜 | 天天做天天添天天谢 | 日日操天天操夜夜操 | 日韩成人免费观看 | 毛片毛片毛片毛片毛片毛片 | 老美AA片 |