用 Python 制作炫酷吊炸天的二维码!
共 5747字,需浏览 12分钟
·
2021-04-29 21:20
各种酷炫二维码的介绍
当今社会,二维码用的地方越来越多了。你的微信二维码,微信付款吗、支付宝付款码,这基本成了每个人的必备品了。
今天这篇文章,就带着大家制作几款二维码,分别是:静态二维码、单图动态二维码、多图动态二维码。
下面先来看看最终的效果:
① 单图动态二维码
② 静态二维码
③ 多图动态二维码
自己开发的二维码生成器
这款“二维码生成器”工具,我已经开发出来。下面给大家简单介绍一下它的用法。
首先,打开我个人开发的二维码生成器,如下图所示。
接着,输入二维码要保存的网址、二维码保存位置,以及动图所在位置。
最后,点击“生成二维码”,即可看到最终生成的效果!
从下图可以看到,这张动态二维码已经生成。
开发代码
这么酷炫的工具是怎么开发出来的呢?废话不多说,直接上代码吧!
__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打包,最终打包出来的程序无法运行,因为有些库未打包成功,用上述命令打包即可解决这个问题。
给你的微信二维码,添加自定义背景图
猛地一看标题,大家可能不太明白这是啥意思,我大致为你说明一下。
在微信中,我们本身可以保存自己的二维码,但是一般都是没有背景样式的。如果你想将女朋友的照片,与你的个人二维码融合起来,应该怎么办呢?下面我来好好给你讲述一下。
首先,我们保存自己的微信二维码图片,将该二维码解码还原为网址。
二维码解码还原为网址,我使用我十年前开发的二维码工具进行识别:
获取到链接节后,再使用我用python开发的二维码生成工具:
多张动态二维码
选择多张底图,批量生成二维码:
然后点击生成二维码(可能需要多等一会):
下面是生成的4张对应的二维码图片:
然后打开Imagine软件:
点击工具->动画作坊
点击插入帧,选择图片并打开:
拖动好顺序后,全选图片点击帧属性:
我统一设置为700毫秒,然后确定:
然后将动画属性设置为循环:
然后保存即可。
更多阅读
特别推荐
点击下方阅读原文加入社区会员