編程學習網 > IT圈內 > 職場勵志 > 這個制作二維碼的方法你get了嗎?
2021
05-12

這個制作二維碼的方法你get了嗎?

各種酷炫二維碼的介紹


當今社會,二維碼用的地方越來越多了。你的微信二維碼,微信付款嗎、支付寶付款碼,這基本成了每個人的必備品了。

今天這篇文章,就帶著大家制作幾款二維碼,分別是:靜態二維碼、單圖動態二維碼、多圖動態二維碼。


下面先來看看最終的效果:

① 單圖動態二維碼


② 靜態二維碼

③ 多圖動態二維碼

這個都歸功于二維碼生成器,具體代碼分享如下:


__author__ = 'xiaoxiaoming'

import PySimpleGUI as sg
from MyQR import myqr

sg.change_look_and_feel("LightBlue")
layout = [
    [sg.Text("請輸入二維碼的網址或英文字符串(不支持中文):")],
    [sg.In(size=(60, 1), key="words")],
    [sg.Text("圖片保存位置(文件名以底圖為準):")],
    [sg.In(size=(53, 1), key="save_path"), sg.FolderBrowse('游覽', target='save_path')],
    [sg.Text("底圖所在位置(不傳表示不設置底圖,支持多選會同時生成多張二維碼):")],
    [sg.In(size=(53, 1), key="bg_filename"), sg.FilesBrowse('游覽', target='bg_filename')],
    [sg.Button('生成二維碼', enable_events=True, key="start")],
    [sg.Text(size=(50, 3), text_color='red', key="out", text='底圖設置一張gif動圖即可生成動態二維碼')],
    [sg.Image(key="-IMAGE-")],
]
window = sg.Window("動態二維碼生成器(小小明個人開發)", layout)

def create_qr(words, save_path, picture):
    if picture == "":
        imgpaths = [None]
    else:
        imgpaths = picture.split(";")
    save_names = []
    save_path = save_path.rstrip("/").rstrip("\\")
    for idx, imgpath in enumerate(imgpaths, 1):
        i = imgpath.rfind('/')
        j = imgpath.rfind('\\')
        start_p = max(i, j) + 1
        end_p = imgpath.rfind('.')
        filename = imgpath[start_p:end_p]
        save_name = f"{save_path}/{filename}-{idx}.gif"
        myqr.run(
            # 該鏈接表示你想要生成二維碼的鏈接。
            words=words,
            version=10,  # 容錯率
            level='H',  # 糾錯水平,范圍是L、M、Q、H,從左到右依次升高
            colorized=True,  # False為黑白
            contrast=1.5,  # 用以調節圖片的對比度,1.0 表示原始圖片。
            brightness=1.0,  # 用來調節圖片的亮度。
            save_name=save_name,  # 存儲的文件名
            # 背景圖片的路徑,你如果給的是".png/.jpg"等靜態圖片,最終生成的就是靜態二維碼!
            # 背景圖片的路徑,你如果給的是".gif"等動態圖片,最終只需要保存為".gif",生成的就是動態二維碼!
            picture=imgpath
        )
        save_names.append(save_name)
    return save_names

while True:
    event, values = window.read()
    if event == "Exit" or event == sg.WIN_CLOSED:
        break
    print(event, values)
    if event == 'start':
        try:
            save_names = create_qr(values['words'], values['save_path'], values['bg_filename'])
            window["-IMAGE-"].update(filename=save_names[-1])
            window["out"].update(f"二維碼圖片已經保存到" + ",".join(save_names))
        except Exception as e:
            window["out"].update(str(e))

window.close()



*聲明:本文于網絡整理,版權歸原作者所有,如來源信息有誤或侵犯權益,請聯系我們刪除或授權事宜。

大家可以看看是否能夠解決你的問題,感興趣的可以持續關注編程學習網

掃碼二維碼 獲取免費視頻學習資料

Python編程學習

查 看2022高級編程視頻教程免費獲取