python之qrcode模塊生成二維碼

用Python的qrcode包來生成二維碼很簡單

一槐脏、前期準(zhǔn)備:

  • pip install qrcode

qrcode 依賴 Image 這個包:

  • pip install Image

二甲葬、安裝好之后就可以通過代碼實現(xiàn)二維碼了

- 1. 簡單生成二維碼:
import qrcode //模塊導(dǎo)入
 //調(diào)用qrcode的make()方法傳入url或者想要展示的內(nèi)容
img = qrcode.make('http://www.baidu.com')
 //寫入文件
with open('test.png', 'wb') as f:
    img.save(f)

生成的二維碼:


text.png
import qrcode //模塊導(dǎo)入
 //調(diào)用qrcode的make()方法傳入url或者想要展示的內(nèi)容
img = qrcode.make('歡迎來到我的簡書')
 //保存
img.save("text.png")

生成的二維碼:


text.png

此處并沒有使用add_data()添加數(shù)據(jù)生巡,make_image()生成二維碼,而是使用qrcode.make(data)的方式獲取im對象摹迷。qrcode.make()是qrcode提供簡單調(diào)用接口疟赊。

- 2. 正常生成二維碼的步驟:
  1. 創(chuàng)建QRCode對象
  2. add_data()添加數(shù)據(jù)
  3. make_image()創(chuàng)建二維碼(返回im類型的圖片對象)
  4. 自動打開圖片,im.show()
- 3. QRCode參數(shù)詳細(xì)說明:
  • version: 一個整數(shù)峡碉,范圍為1到40近哟,表示二維碼的大小(最小值是1鲫寄,是個12×12的矩陣)吉执,如果想讓程序自動生成,將值設(shè)置為 None 并使用 fit=True 參數(shù)即可地来。
  • error_correction: 二維碼的糾錯范圍戳玫,可以選擇4個常量:
    ··1. ERROR_CORRECT_L 7%以下的錯誤會被糾正
    ··2. ERROR_CORRECT_M (default) 15%以下的錯誤會被糾正
    ··3. ERROR_CORRECT_Q 25 %以下的錯誤會被糾正
    ··4. ERROR_CORRECT_H. 30%以下的錯誤會被糾正
  • boxsize: 每個點(diǎn)(方塊)中的像素個數(shù)
  • border: 二維碼距圖像外圍邊框距離,默認(rèn)為4未斑,而且相關(guān)規(guī)定最小為4
4. 參數(shù)配置后生成自定制二維碼
import qrcode

data = 'http://www.baidu.com/'
img_file = r'保存路徑'

# 實例化QRCode生成qr對象
qr = qrcode.QRCode(
    version=1,
    error_correction=qrcode.constants.ERROR_CORRECT_H,
    box_size=10,
    border=4
)
# 傳入數(shù)據(jù)
qr.add_data(data)

qr.make(fit=True)

# 生成二維碼
img = qr.make_image()

# 保存二維碼
img.save(img_file)
# 展示二維碼
img.show()

三咕宿、額外添加

往往我們看到的二維碼中間都有一張圖片或者用戶頭像,如何才能生成這樣一張二維碼蜡秽?

利用PIL庫中image模塊的paste函數(shù)
img.paste(path,where,mask=None)
其中府阀,img為image對象;path為所添加圖片芽突;where為tuple,如:(x,y)试浙,表示圖片所在二維碼的橫縱坐標(biāo)

import qrcode
from PIL import Image
import matplotlib.pyplot as plt


def getQRcode(data, file_name):
    qr = qrcode.QRCode(
        version=1,
        error_correction=qrcode.constants.ERROR_CORRECT_H,
        box_size=5,
        border=4,
    )

    # 添加數(shù)據(jù)
    qr.add_data(data)
    # 填充數(shù)據(jù)
    qr.make(fit=True)
    # 生成圖片
    img = qr.make_image(fill_color="green", back_color="white")

    # 添加logo,打開logo照片
    icon = Image.open("1.jpg")
    # 獲取圖片的寬高
    img_w, img_h = img.size
    # 參數(shù)設(shè)置logo的大小
    factor = 6
    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
    # 重新設(shè)置logo的尺寸
    icon = icon.resize((icon_w, icon_h), Image.ANTIALIAS)
    # 得到畫圖的x寞蚌,y坐標(biāo)田巴,居中顯示
    w = int((img_w - icon_w) / 2)
    h = int((img_h - icon_h) / 2)
    # 黏貼logo照
    img.paste(icon, (w, h), mask=None)
    # 終端顯示圖片
    plt.imshow(img)
    plt.show()
    # 保存img
    img.save(file_name)
    return img


if __name__ == '__main__':
    getQRcode("世情薄,人情惡挟秤,雨送黃昏花易落壹哺。曉風(fēng)干,淚痕殘煞聪,欲箋心事斗躏,獨(dú)語斜闌逝慧。"
              "難昔脯,難啄糙,難!人成各云稚,今非昨隧饼,病魂常似秋千索。角聲寒静陈,夜闌珊燕雁,怕人尋問,咽淚裝歡鲸拥。瞞拐格,瞞,瞞刑赶!", 'my.png')

最后捏浊,送你一首宋詞,掃碼免費(fèi)得W策丁=鹱佟!


my.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末牵敷,一起剝皮案震驚了整個濱河市胡岔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌枷餐,老刑警劉巖靶瘸,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異毛肋,居然都是意外死亡奕锌,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進(jìn)店門村生,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惊暴,“玉大人,你說我怎么就攤上這事趁桃×苫埃” “怎么了?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵卫病,是天一觀的道長油啤。 經(jīng)常有香客問我,道長蟀苛,這世上最難降的妖魔是什么益咬? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮帜平,結(jié)果婚禮上幽告,老公的妹妹穿的比我還像新娘梅鹦。我一直安慰自己,他們只是感情好冗锁,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布齐唆。 她就那樣靜靜地躺著,像睡著了一般冻河。 火紅的嫁衣襯著肌膚如雪箍邮。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天叨叙,我揣著相機(jī)與錄音锭弊,去河邊找鬼。 笑死擂错,一個胖子當(dāng)著我的面吹牛廷蓉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播马昙,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼型宝,長吁一口氣:“原來是場噩夢啊……” “哼衡楞!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤卿城,失蹤者是張志新(化名)和其女友劉穎菊匿,沒想到半個月后狭莱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體奥裸,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年证杭,在試婚紗的時候發(fā)現(xiàn)自己被綠了田度。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡解愤,死狀恐怖镇饺,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情送讲,我是刑警寧澤奸笤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站哼鬓,受9級特大地震影響监右,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜异希,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一健盒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦扣癣、人聲如沸惰帽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽善茎。三九已至券册,卻和暖如春频轿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背烁焙。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工航邢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人骄蝇。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓膳殷,卻偏偏與公主長得像,于是被迫代替她去往敵國和親九火。 傳聞我的和親對象是個殘疾皇子赚窃,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內(nèi)容