91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python應用之qrcode生成二維碼的示例

發布時間:2021-02-23 10:38:23 來源:億速云 閱讀:191 作者:清風 欄目:編程語言

本文將為大家詳細介紹“python應用之qrcode生成二維碼的示例”,內容步驟清晰詳細,細節處理妥當,而小編每天都會更新不同的知識點,希望這篇“python應用之qrcode生成二維碼的示例”能夠給你意想不到的收獲,請大家跟著小編的思路慢慢深入,具體內容如下,一起去收獲新知識吧。

python可以做什么

Python是一種編程語言,內置了許多有效的工具,Python幾乎無所不能,該語言通俗易懂、容易入門、功能強大,在許多領域中都有廣泛的應用,例如最熱門的大數據分析,人工智能,Web開發等。


一、準備

1、python環境

2、涉及到的python庫需要 pip install 包名 安裝

pip install qrcode
pip install pillow

二、代碼編寫

1.引入庫

import qrcodefrom PIL import Imageimport osimport sys

2.配置初始化參數

 qr = qrcode.QRCode(
        version=2,  #25*25     二維碼的版本號,每一個版本號對應一個尺寸,這里尺寸不是圖片的大小而的是二維碼長寬被分成的份數
        error_correction=qrcode.constants.ERROR_CORRECT_H,     #糾錯容量,指二維碼不完整時可以正常識別出原信息的概率(ERROR_CORRECT_H的糾錯率最高)
        box_size=8,            #生成圖片的像素
        border=1,              #二維碼邊框寬度    )

3.得到二維碼對象

qr.add_data(string)  **#string為想要打開的鏈接**
    qr.make(fit=True)    #用make()方法生成圖片
    img = qr.make_image(fill_color = 'black',back_color = 'white')  #得到二維碼對象,并可以通過修改fill_color、back_color參數來調整小格子顏色和背景色
    img = img.convert("RGBA")  #將圖片轉換為RGBA格式

4.在二維碼中放置logo

if logo and os.path.exists(logo):
        try:
            icon = Image.open(logo)
            img_w, img_h = img.size  #img_w、img_h是二維碼的尺寸
        except Exception as e:
            print(e) 
            sys.exit(1)
        factor = 4
        size_w = int(img_w / factor)
        size_h = int(img_h / factor)

        icon_w, icon_h = icon.size   #icon_W、icon_h是logo原始的尺寸        if icon_w > size_w:          #size_W、size_h是二維碼尺寸的1/factor
            icon_w = size_w        if icon_h > size_h:
            icon_h = size_h
        icon = icon.resize((icon_w, icon_h), Image.ANTIALIAS)   #antialias是平滑處理
        # 保證二維碼大小不超過二維碼大小的1/factor

        w = int((img_w - icon_w) / 2)  #計算logo在二維碼中的相對位置
        h = int((img_h - icon_h) / 2)
        icon = icon.convert("RGBA")
        img.paste(icon, (w, h), icon)  #根據相對位置w、h將logo放到二維碼圖片上,所以說實際是logo并不是二維碼的一部分,會遮擋二維碼的一部分,不能太大,否則無法識別

5.配置相應信息并調用函數

if __name__ == "__main__":
    info = "https://blog.csdn.net/weixin_45386875/article/details/113766276"            #二維碼的鏈接
    pic_path = "qr.png"                       #生成的圖片保存文件
    logo_path = "logo.png"                    #logo的文件名    gen_qrcode(info, pic_path,logo_path )     #調用函數

6.完整代碼

import qrcodefrom PIL import Imageimport osimport sysdef gen_qrcode(string, path, logo=""):
    """
    生成中間帶logo的二維碼
    需要安裝qrcode, PIL庫
    @參數 string: 二維碼字符串
    @參數 path: 生成的二維碼保存路徑
    @參數 logo: logo文件路徑
    @return: None
    """
    qr = qrcode.QRCode(
        version=2,  #25*25     二維碼的版本號,每一個版本號對應一個尺寸,這里尺寸不是圖片的大小而的是二維碼長寬被分成的份數
        error_correction=qrcode.constants.ERROR_CORRECT_H,     #糾錯容量,指二維碼不完整時可以正常識別出原信息的概率(ERROR_CORRECT_H的糾錯率最高)
        box_size=8,    #生成圖片的像素
        border=1,      #二維碼邊框寬度
    )
    qr.add_data(string)  #string為想要打開的鏈接
    qr.make(fit=True)    #用make()方法生成圖片
    img = qr.make_image(fill_color = 'black',back_color = 'white')  #得到二維碼對象,并可以通過修改fill_color、back_color參數來調整小格子顏色和背景色
    img = img.convert("RGBA")  #將圖片轉換為RGBA格式
    if logo and os.path.exists(logo):
        try:
            icon = Image.open(logo)
            img_w, img_h = img.size  #img_w、img_h是二維碼的尺寸
        except Exception as e:
            print(e) 
            sys.exit(1)
        factor = 4
        size_w = int(img_w / factor)
        size_h = int(img_h / factor)

        icon_w, icon_h = icon.size   #icon_W、icon_h是logo原始的尺寸
        if icon_w > size_w:          #size_W、size_h是二維碼尺寸的1/factor
            icon_w = size_w        if icon_h > size_h:
            icon_h = size_h
        icon = icon.resize((icon_w, icon_h), Image.ANTIALIAS)   #antialias是平滑處理
        # 保證二維碼大小不超過二維碼大小的1/factor

        w = int((img_w - icon_w) / 2)  #計算logo在二維碼中的相對位置
        h = int((img_h - icon_h) / 2)
        icon = icon.convert("RGBA")
        img.paste(icon, (w, h), icon)  #根據相對位置w、h將logo放到二維碼圖片上,所以說實際是logo并不是二維碼的一部分,會遮擋二維碼的一部分,不能太大,否則無法識別
    img.save(path)
    # 調用系統命令打開圖片
    # xdg - open(opens a file or URL in the user's preferred application)
    #os.system('xdg-open %s' %(path)) #這是Linux系統的命令
    os.startfile(path) #windows 下打開文件if __name__ == "__main__":
    info = "https://blog.csdn.net/weixin_45386875?spm=1010.2135.3001.5343"            #二維碼的鏈接
    pic_path = "qr.png"                       #生成的圖片保存文件
    logo_path = "logo.png"                    #logo的文件名
    gen_qrcode(info, pic_path,logo_path )     #調用函數

如果你能讀到這里,小編希望你對“python應用之qrcode生成二維碼的示例”這一關鍵問題有了從實踐層面最深刻的體會,具體使用情況還需要大家自己動手實踐使用過才能領會,如果想閱讀更多相關內容的文章,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

太谷县| 洮南市| 望都县| 郁南县| 偏关县| 黔南| 洛宁县| 临海市| 隆化县| 临泽县| 博爱县| 启东市| 镇雄县| 宝鸡市| 含山县| 年辖:市辖区| 积石山| 镇原县| 漠河县| 三门县| 上思县| 定边县| 永宁县| 芷江| 武威市| 成安县| 沙田区| 留坝县| 通江县| 重庆市| 邹城市| 依安县| 玉门市| 朔州市| 綦江县| 高阳县| 光山县| 红河县| 敖汉旗| 奉新县| 广元市|