python自制二维码代码,python自动生成二维码
二维码也叫二维条码,常见的二维码是QRCode,QR是QuickResponse的全称,是近年来在移动设备上极为流行的一种编码方式。本文将使用python生成一个简单的二维码生成器,可以参考。
00-1010前言1。安装第三方库2。解释二维码参数3。自定义二维码生成器4。二维码5加图。所有代码。
目录
二维码又称二维条码,俗称二维码,QR是快速反应的全称。这是近年来在移动设备上非常流行的编码方法。与传统的条形码相比,它可以存储更多的信息和表示更多的数据类型。如今,二维码随处可见。有些人甚至认为可以在未来的墓碑上刻一个二维码。通过扫描二维码,可以了解墓主人的传奇一生。所以,如何快速定制属于自己的二维码极其重要。本文使用python生成了一个简单的二维码生成器,可以自定义二维码中间的背景、填充颜色和背景图片。
前言
Win,输入cmd,进入系统管理员界面,安装第三方库。
pipinstallqrcode
pipinstallpillow#PIL的衍生分支,是python3之上PIL的备选库。
注意:PIL是python的重要图库,在二维码添加图片时需要用到,但是安装时出现错误:找不到符合要求的版本PIL(来自3360版本无)。原来python3以上版本已经把这个库换成其他库了(pillow)
1、安装第三方库
版本:取值1~40的整数,控制二维码的大小(最小值为1,为1212矩阵)。如果希望程序自动确定,请将该值设置为“无”并使用fit参数。Error_correction:指定QR码的容错系数,有以下四个系数:
Error _ correct _ l3360 7%的词可以容错ERROR_CORRECT_M: 15%的词可以容错ERROR_CORRECT_Q: 25%的词可以容错ERROR_CORRECT_H: 30%的词可以容错box_size:控制二维码每个小网格的像素数。边框:控制边框包含的网格数(二维码与图片边框的距离)(默认为4,是相关标准规定的最小值)。
2、QRCode参数解释
生成一个窗口,您可以在输入框中自定义二维码的相关信息,包括您要输入的文本(可以是文字,也可以是网址)、填充颜色、背景颜色。代码如下:
if__name__==__main__:
窗口=tk。Tk()
Window.title(二维码生成器)
window.geometry(900x600 )
Label _ url=tk.label (window,text=输入文本:)
label_url.place(x=50,y=40)
条目_输入_url=tk。条目()
Entry_input_url.place(x=120,y=40)
label _ fill _ color=tk . label(window,text= fill color:)
label_fill_color.place(x=50,y=80)
条目_输入_填充_颜色=tk。条目()
entry _ input _ fill _ color . place(x=120,y=80)
label _ fill _ color=tk . label(window,text=背景色:)
label_fill_color.place(x=50,y=120)
Entry_input_back_color=tk条目()
entry _ input _ back _ color . place(x=120,y=120)
Button=tk。按钮(窗口,文本=开始生成,命令=创建_代码)
button.place(x=140, y=160)
window.mainloop()
结果如下:
4、给二维码加图片
# 给二维码加图片# 把颜色模式转换为RGBA,它表示带透明度掩模的真彩色
img = img.convert("RGBA")
# 从文件里加载二维码中心logo图片,用Image函数的open方法
icon = Image.open("2.jpg")
# 得出二维码的宽高
img_w, img_h = img.size
factor = 4
# 通过二维码宽高计算出logo图片宽和高的最大限度
size_w = int(img_w / factor)
size_h = int(img_h / factor)
# 获取logo的宽和高
icon_w, icon_h = icon.size
# 比较logo宽高和最大限度宽高,如果超过最大限度就将logo尺寸调整到最大限度
if icon_w > size_w:
icon_w = size_w
if icon_h > size_h:
icon_h = size_h
icon = icon.resize((icon_w, icon_h), Image.ANTIALIAS)
# 根据logo和图片的长宽确定logo的位置
w = int((img_w - icon_w) / 2)
h = int((img_h - icon_h) / 2)
icon = icon.convert("RGBA")
# 将logo图片粘贴到二维码的指定位置
img.paste(icon, (w, h), icon)
5、全部代码
window.mainloop()
import qrcodeimport tkinter as tk
from PIL import Image
def create_code():
content = Entry_input_url.get()
fill_color = Entry_input_fill_color.get()
back_color = Entry_input_back_color.get()
qr = qrcode.QRCode(
version=2, # 二维码的边长
# ERROR_CORRECT_H: 30%的字码可被容错,因为插入了图片,所以增加容错率
error_correction=qrcode.constants.ERROR_CORRECT_H,
box_size=6,
border=2,
)
qr.make(fit=True)
qr.add_data(content)
img = qr.make_image(fill_color=fill_color, back_color=back_color)
# 给二维码加图片
# 把颜色模式转换为RGBA,它表示带透明度掩模的真彩色
img = img.convert("RGBA")
# 从文件里加载二维码中心logo图片,用Image函数的open方法
icon = Image.open("2.jpg")
# 得出二维码的宽高
img_w, img_h = img.size
factor = 4
# 通过二维码宽高计算出logo图片宽和高的最大限度
size_w = int(img_w / factor)
size_h = int(img_h / factor)
# 获取logo的宽和高
icon_w, icon_h = icon.size
# 比较logo宽高和最大限度宽高,如果超过最大限度就将logo尺寸调整到最大限度
if icon_w > size_w:
icon_w = size_w
if icon_h > size_h:
icon_h = size_h
icon = icon.resize((icon_w, icon_h), Image.ANTIALIAS)
# 根据logo和图片的长宽确定logo的位置
w = int((img_w - icon_w) / 2)
h = int((img_h - icon_h) / 2)
icon = icon.convert("RGBA")
# 将logo图片粘贴到二维码的指定位置
img.paste(icon, (w, h), icon)
# 保存二维码
img.save("qr.png")
photo = tk.PhotoImage(file="qr.png")
Label_img = tk.Label(window, image=photo)
Label_img.place(x=300, y=300)
if __name__ == __main__:
window = tk.Tk()
window.title(二维码生成器)
window.geometry(900x600)
label_url = tk.Label(window, text="输入文本:")
label_url.place(x=50, y=40)
Entry_input_url = tk.Entry()
Entry_input_url.place(x=120, y=40)
label_fill_color = tk.Label(window, text="填充颜色:")
label_fill_color.place(x=50, y=80)
Entry_input_fill_color = tk.Entry()
Entry_input_fill_color.place(x=120, y=80)
label_fill_color = tk.Label(window, text="背景颜色:")
label_fill_color.place(x=50, y=120)
Entry_input_back_color = tk.Entry()
Entry_input_back_color.place(x=120, y=120)
button = tk.Button(window, text=开始生成, command=create_code)
button.place(x=140, y=160)
到此这篇关于基于Python编写一个二维码生成器的文章就介绍到这了,更多相关Python二维码生成器内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。