Python实用小工具之制作酷炫二维码

简介: Python实用小工具之制作酷炫二维码

写在前面


二维码的使用之处越来越多,普通的二维码,相信大家已经都司空见惯了,今天就带大家使用 Pythonmyqr 库,来制作些不一样的二维码。


制作二维码


安装myqr库

pip install -i https://pypi.douban.com/simple myqr
复制代码

安装之后可以使用 pip show myqr 命令来检查是否安装成功,成功的提示应该类似于下面这样。

image.png


myqr.run()参数详解

我们使用 myqr.run() 来生成二维码,先看一下它的参数含义。

参数 类型 简义 详细
words str 链接/字符串 二维码指向的内容
version int 二维码大小 边长参数,范围是1到40,默认边长是取决于你输入信息的长度和使用的纠错等级
level str 纠错等级 二维码的纠错等级,范围是L、M、Q、H,H最高,默认纠错等级为H
picture str 二维码背景图片 将二维码图像与指定的图片相融合
colorized boolean 颜色 指定产生的图片的颜色,True为彩色,False为黑白色。
contrast float 对比度 以1.0为界限,值越小表示对比度越低,值越大表示对比度越高
brightness float 亮度 以1.0为界限,值越小表示对比度越低,值越大表示亮度越高
save_name str 输出文件名 默认输出文件名是“qrcode.png”
save_dir str 二维码存储位置 默认存储位置是当前目录


制作普通二维码

制作普通的二维码,只需要指定二维码指向的内容与保存的名称,其他参数均按照默认参数。

# 生成普通二维码
from MyQR import myqr
myqr.run(words='http://weixin.qq.com/r/6h3Ty4DETt0xrcSo90j4',
        save_name='普通二维码.png')
复制代码

image.png


制作黑白背景二维码

如果只指定了背景图片,默认是黑白色的,效果如下。

myqr.run(words='http://weixin.qq.com/r/6h3Ty4DETt0xrcSo90j4',
         picture='bg.png',
        save_name='黑白背景二维码.png')
复制代码

image.png


制作彩色背景二维码

使用 colorized=True 来使背景的颜色改为彩色。

myqr.run(words='http://weixin.qq.com/r/6h3Ty4DETt0xrcSo90j4',
         picture='bg.png',
         colorized=True,
        save_name='彩色背景二维码.png')
复制代码

image.png


制作大边长二维码

之前的图片 version 默认为1,现在指定 version=20 ,图片相对于之前看起来会变的更清晰。

# 调节二维码边长
myqr.run(words='http://weixin.qq.com/r/6h3Ty4DETt0xrcSo90j4',
         version=20,
         picture='bg.png',
         colorized=True,
        save_name='彩色背景二维码(大).png')
复制代码

image.png


制作动态二维码

这里制作一个大边长的动态二维码,要注意 gif 图片的大小(内存不是尺寸),图片太大,制作出的二维码动图速度会变慢。

# 动态二维码
myqr.run(words='http://weixin.qq.com/r/6h3Ty4DETt0xrcSo90j4',
         version=20,
         picture='bg.gif',
         colorized=True,
        save_name='彩色背景动态二维码(大).gif')
复制代码

image.png


解析二维码


这里再介绍一下解析二维码的一个库 zxing ,安装方式与文章开头 myqr 相似,使用是只需要指定路径参数,函数返回解析得到的二维码内容。

import zxing
reader = zxing.BarCodeReader()
barcode = reader.decode('C:/Users/pc/Desktop/图片/test.jpg')
print(barcode.parsed)
复制代码


tkinter制作可视化界面


设置界面主题

创建主组件对象,并添加标题。

window = ThemedTk(theme="adapta", fonts=True, themebg=True)
window.title('二维码生成器')
复制代码


自定义组件样式

根据自己的需要,添加自己喜欢的样式,这里我添加了两款 label 的样式。

label_style = ttk.Style()
label_style.configure("one.TLabel", font=("微软雅黑", 16, 'bold'), foreground="red", background="yellow")
label_style1 = ttk.Style()
label_style1.configure("two.TLabel", font=("微软雅黑", 9), foreground="blue", background="yellow")    
复制代码


添加输入框组件

输入框组件,主要负责接收输入的内容,使用 entry.get() 即可获取输入框中的内容。

# 填写二维码内容
label1 = ttk.Label(window, text=' 链接/字符串 ', style='two.TLabel')
entry = ttk.Entry(window, width=30)   
复制代码


添加下拉框组件

与输入框的功能相似,也是获取用户选择的内容,同样使用 combo.get() 获取用户输入的内容。

# 纠错级别
label3 = ttk.Label(window, text=' 纠错级别 ', style='two.TLabel')
combo = AutocompleteCombobox(completevalues=['L 水平 7% 的字码可被修正',
                                            'M 水平 15% 的字码可被修正',
                                            'Q 水平 25% 的字码可被修正',
                                            'H 水平 30% 的字码可被修正'])
combo.insert('0', 'H 水平 30% 的字码可被修正')
复制代码


添加选择背景组件

点击按钮,弹出资源管理器来选择图片背景, entry 框显示选择后的路径,并接收选择的路径参数。

def selectFilePath():
    global img_path
    # 选择文件path接收文件地址
    img_path = Path(filedialog.askopenfilename(title='选择背景图片'))
    path1.set(img_path)
# 选择背景图
path1 = tk.StringVar()
entry2 = ttk.Entry(window, textvariable=path1, width=30)
entry2.insert(0, '默认无')
button1 = ttk.Button(window,width=10, text = "选择背景", command = selectFilePath)
复制代码


添加输出显示框组件

显示运行结果及报错等信息。

tree = ttk.Treeview(height=1, show=("tree", "headings"))
复制代码

成品如下:

image.png


源码打包


虽然之前的文章中已经介绍过很多次打包的方法,但为了新读者,还是再来简单讲解一下。 首先要确保已经安装 pyinstaller,没有安装的可以先安装一下。

pip install -i https://pypi.douban.com/simple pyinstaller 
复制代码


pyinstaller 使用时的常用参数含义:

-F:打包单个文件,产生一个文件用于部署(默认),如果代码都写在一个 .py 文件时使用,项目有多个文件时不要使用

pyinstaller -F xxx.py
复制代码

-D:打包多个文件,产生一个目录用于部署(默认),用于框架编写的代码打包

pyinstaller -D xxx.py(项目入口文件)
复制代码

--key=keys:使用 keys 进行加密打包

pyinstaller --key=123456 -F xxx.py
复制代码

-d:产生 debug 版本的可执行文件

-p:用来添加程序所用到的包的所在位置,设置导入路径,可以用 ; ( Linux 使用 :)分割来指定多个目录。

-w:表示不用控制台窗口,使用 Windows 子系统执行,当程序启动的时候不会打开命令行(只对 Windows 有效)

-c:表示打开控制台窗口,使用控制台子系统执行,当程序启动的时候会打开命令行(默认)(只对 Windows 有效)

-i:将 file.ico 添加为可执行文件的资源,改变程序的图标(只对 Windows 系统有效)

安装完成后,新建一个文件夹,将源文件放到该文件夹下面,打开cmdcd 进入该文件夹下(重点),执行下面语句

image.png

生成的文件结构如下

image.png

exe 可执行文件在 dist 目录下

image.png


相关文章
|
26天前
|
存储 安全 数据安全/隐私保护
打造安全防线!Python AES&RSA加密工具,黑客绕道走的秘籍
【9月更文挑战第9天】随着数字化时代的到来,信息安全问题日益凸显。本文将介绍如何使用Python结合AES与RSA两种加密算法,构建强大的加密工具。AES以其高效性和强安全性著称,适用于大量数据的快速加密;RSA作为非对称加密算法,在加密小量数据及实现数字签名方面表现卓越。通过整合两者,可以构建既安全又灵活的加密系统。首先,需要安装pycryptodome库。接着,实现AES加密与解密功能,最后利用RSA加密AES密钥,确保其安全传输。这种设计不仅提高了数据传输效率,还增强了密钥交换的安全性,为敏感数据提供坚实保护。
176 43
|
5天前
|
测试技术 Python
Python MagicMock: Mock 变量的强大工具
Python MagicMock: Mock 变量的强大工具
23 8
|
10天前
|
Python
python第三方库-字符串编码工具 chardet 的使用(python3经典编程案例)
这篇文章介绍了如何使用Python的第三方库chardet来检测字符串的编码类型,包括ASCII、GBK、UTF-8和日文编码的检测示例。
41 6
|
1月前
|
Python
Python的编辑工具-Jupyter notebook实战案例
这篇博客介绍了Jupyter Notebook的安装和使用方法,包括如何在本地安装Jupyter、启动和使用Jupyter Notebook进行编程、文档编写和数据分析,以及如何执行和管理代码单元(Cell)的快捷键操作。
33 4
Python的编辑工具-Jupyter notebook实战案例
|
19天前
|
机器学习/深度学习 算法 开发工具
Python Web开发工具
Python Web开发工具
18 3
|
26天前
|
消息中间件 网络协议 Python
工具人逆袭!掌握Python IPC,让你的进程从此告别单打独斗
【9月更文挑战第9天】你是否曾遇到多个Python程序像孤岛般无法通信,导致数据孤立、任务难协同的问题?掌握进程间通信(IPC)技术,可助你打破这一僵局。IPC是不同进程间传递数据或信号的机制,在Python中常用的方法有管道、消息队列、共享内存及套接字等。其中,管道适用于父子或兄弟进程间简单数据传递;套接字则不仅限于本地,还能在网络间实现复杂的数据交换。通过学习IPC,你将能设计更健壮灵活的系统架构,成为真正的编程高手。
20 3
|
5天前
|
开发者 Python
探索Python中的列表推导式:一种简洁而强大的工具
【9月更文挑战第29天】在Python的编程世界中,代码的简洁性和可读性总是受到高度赞扬。列表推导式(List Comprehension)作为Python的一个特色功能,不仅能够以简洁的方式生成列表,还能提高代码的执行效率。本文将通过直观的例子和分析,带你深入理解列表推导式的魅力所在,并探讨如何在日常编程中有效利用这一工具来简化代码结构,提升开发效率。
|
7天前
|
机器学习/深度学习 Linux 开发者
Python必备工具:pip的安装与管理
Python必备工具:pip的安装与管理
15 0
|
8天前
|
iOS开发 Python
6-8|如何使用Python语言开发IOS混淆工具
6-8|如何使用Python语言开发IOS混淆工具
|
10天前
|
Python
python生成二维码
python生成二维码
下一篇
无影云桌面