最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python二維碼生成庫(kù)qrcode安裝和使用示例

 更新時(shí)間:2014年12月16日 10:49:52   投稿:junjie  
這篇文章主要介紹了Python二維碼生成庫(kù)qrcode安裝和使用示例,本文講解了qrcode的安裝、生成二維碼、生成帶圖標(biāo)的二維碼等內(nèi)容,需要的朋友可以參考下

二維碼簡(jiǎn)稱(chēng) QR Code(Quick Response Code),學(xué)名為快速響應(yīng)矩陣碼,是二維條碼的一種,由日本的 Denso Wave 公司于 1994 年發(fā)明?,F(xiàn)隨著智能手機(jī)的普及,已廣泛應(yīng)用于平常生活中,例如商品信息查詢(xún)、社交好友互動(dòng)、網(wǎng)絡(luò)地址訪(fǎng)問(wèn)等等。

安裝 Python 的二維碼庫(kù) -- qrcode

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

復(fù)制代碼 代碼如下:

sudo easy_install pil

如果安裝 pil 時(shí)出現(xiàn)以下錯(cuò)誤:

復(fù)制代碼 代碼如下:

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

StackOverflow 上發(fā)現(xiàn)是 Mac 下所依賴(lài)的 FreeType 鏈接變更問(wèn)題,解決如下:

復(fù)制代碼 代碼如下:

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

安裝 qrcode 庫(kù):

復(fù)制代碼 代碼如下:

sudo easy_install qrcode

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

復(fù)制代碼 代碼如下:

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

示例代碼

復(fù)制代碼 代碼如下:

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")

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

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

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

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

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

運(yùn)行上面代碼會(huì)生成敝站的一個(gè) QR Code:

生成帶有圖標(biāo)的二維碼

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

對(duì)于插入在二維碼上的圖標(biāo)大小,這里指定限制圖標(biāo)的大小尺寸最大是二維碼長(zhǎng)寬的 1/4,以免殘缺太大,影響識(shí)別。

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

復(fù)制代碼 代碼如下:

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")

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

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

相關(guān)文章

  • Python獲取list中最大或最小的n個(gè)數(shù)及其索引方式

    Python獲取list中最大或最小的n個(gè)數(shù)及其索引方式

    文章介紹兩種獲取列表最大/最小值的方法:方法一通過(guò)深拷貝逐次定位并置零,適應(yīng)重復(fù)值場(chǎng)景;方法二利用heapq模塊,適用于無(wú)重復(fù)值情況,重復(fù)時(shí)需結(jié)合方法一,兩種方法各有優(yōu)劣,代碼示例展示不同場(chǎng)景下的實(shí)現(xiàn)效果
    2025-09-09
  • Python繪制極坐標(biāo)基向量詳解

    Python繪制極坐標(biāo)基向量詳解

    這篇文章主要介紹了如何利用python繪制極坐標(biāo)的基向量,文中的示例代碼講解詳細(xì),具有一定的的參考價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-08-08
  • Pandas?DataFrame列快速轉(zhuǎn)換為列表(3秒學(xué)會(huì)!)

    Pandas?DataFrame列快速轉(zhuǎn)換為列表(3秒學(xué)會(huì)!)

    這篇文章主要給大家介紹了關(guān)于Pandas?DataFrame列如何快速轉(zhuǎn)換為列表的相關(guān)資料,在Python的pandas庫(kù)中可以使用DataFrame的tolist()方法將DataFrame轉(zhuǎn)化為列表,需要的朋友可以參考下
    2023-10-10
  • Python類(lèi)型標(biāo)注里Optional的實(shí)現(xiàn)

    Python類(lèi)型標(biāo)注里Optional的實(shí)現(xiàn)

    本文主要介紹了Python類(lèi)型標(biāo)注里Optional的實(shí)現(xiàn),包括與默認(rèn)參數(shù)/可選參數(shù)的關(guān)系,以及在靜態(tài)類(lèi)型檢查中的注意事項(xiàng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2026-02-02
  • Django對(duì)models里的objects的使用詳解

    Django對(duì)models里的objects的使用詳解

    今天小編就為大家分享一篇Django對(duì)models里的objects的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • python中count函數(shù)知識(shí)點(diǎn)淺析

    python中count函數(shù)知識(shí)點(diǎn)淺析

    在本篇文章里小編給大家整理了一篇關(guān)于python中count函數(shù)知識(shí)點(diǎn)淺析內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-12-12
  • 利用Python實(shí)現(xiàn)顏色色值轉(zhuǎn)換的小工具

    利用Python實(shí)現(xiàn)顏色色值轉(zhuǎn)換的小工具

    最近一個(gè)朋友說(shuō)已經(jīng)轉(zhuǎn)用Zeplin很久了。Zeplin的設(shè)計(jì)稿展示頁(yè)面的顏色色值使用十進(jìn)制的 RGB 表示的,在 Android 中的顏色表示大多情況下都需要十六進(jìn)制的 RGB 表示。所以想寫(xiě)個(gè)工作,當(dāng)輸入十進(jìn)制的RGB ,得到十六進(jìn)制的色值,最好可以方便復(fù)制。下面來(lái)一起看看吧。
    2016-10-10
  • 利用Python自動(dòng)生成PPT的示例詳解

    利用Python自動(dòng)生成PPT的示例詳解

    在日常工作中,PPT制作是常見(jiàn)的工作。這篇文章主要為大家詳細(xì)介紹了如何利用Python自動(dòng)生成PPT,文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2022-07-07
  • python3連接MySQL8.0的兩種方式

    python3連接MySQL8.0的兩種方式

    這篇文章主要介紹了python3連接MySQL8.0的兩種方式,本文通過(guò)多種方式給大家介紹的非常詳細(xì),代碼附有文字注釋?zhuān)枰呐笥芽梢詤⒖枷?/div> 2020-02-02
  • python爬取盤(pán)搜的有效鏈接實(shí)現(xiàn)代碼

    python爬取盤(pán)搜的有效鏈接實(shí)現(xiàn)代碼

    這篇文章主要介紹了python爬取盤(pán)搜的有效鏈接,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-07-07

最新評(píng)論

攀枝花市| 南和县| 太保市| 张家界市| 清流县| 会宁县| 密山市| 故城县| 深水埗区| 高阳县| 南投县| 十堰市| 巴南区| 界首市| 津南区| 武鸣县| 沾化县| 兖州市| 永清县| 双峰县| 三明市| 临夏市| 罗平县| 新民市| 许昌市| 靖宇县| 清丰县| 个旧市| 托克逊县| 沽源县| 屏南县| 晋宁县| 临沭县| 元氏县| 大冶市| 理塘县| 昂仁县| 青田县| 平阳县| 开化县| 孝感市|