作者:小小明
效果展示
動態二維碼

用頭像作底圖的個人微信二維碼

多張二維碼組合動圖

動態二維碼的制作
首先打開個人開發的二維碼生成器:

然后輸入二維碼要保存的網址、二維碼保存位置,以及動圖所在位置:

并點擊生成二維碼即可看到上面的效果!
然后就順利的得到這張動態二維碼圖片:

二維碼的生成工具的開發
完整代碼:
__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()
關于MyQR:
https://github.com/sylnsfar/qrcode/blob/master/README-cn.md
安裝:
pip install myqr
打包exe:
python -m PyInstaller -wF myqr_gui.py -i C:\Users\Think\Pictures\ico\a.ico
注意:在虛擬環境下,直接使用pyinstaller打包,最終打包出來的程式無法運行,因為有些庫未打包成功,用上述命令打包即可解決這個問題,
如何用頭像作底圖制作個人微信二維碼
首先,我們保存微信自己的二維碼圖片,然后用游覽器識別該二維碼獲取到其中的網址,然后發給電腦,
對于這步呢,我用了我十年前開發的二維碼工具進行識別:

獲得個人微信二維碼的網址是:https://u.wechat.com/EGgQY5Tegaxxxxx
然后使用我用python開發的工具生成二維碼:

多張二維碼組合動圖制作
選擇多張底圖,批量生成二維碼:

然后點擊生成二維碼(可能需要多等一會):

下面是生成的4張對應的二維碼圖片:

然后打開Imagine軟體:

點擊工具->影片作坊

點擊插入幀,選擇圖片并打開:

拖動好順序后,全選圖片點擊幀屬性:

我統一設定為700毫秒,然后確定:

然后將影片屬性設定為回圈:

然后保存即可!
動圖資源

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/244676.html
標籤:python
上一篇:Python從無到有搭建介面(API)自動化測驗框架
下一篇:opencv cuda加速編譯后呼叫python介面后報錯ImportError: DLL load failed while importing cv2記錄
