生活中有很多场景都需要我们签字(签名),如果是一些不重要的场景,我们的签名好坏基本无所谓了,但如果是一些比较重要的场景,如果我们的签名比较差的话,就有可能给别人留下不太好的印象了,俗话说字如其人嘛,本文我们使用 Python 来制作一个艺术签名小工具,给自己设计一个优雅的签名。

实现的基本原理为:我们根据艺术签名网站生成签名的规则,模拟对于请求生成签名,然后将其显示在 tkinter 生成的 GUI 窗口中。

我们选择的艺术签名网站地址为 http://www.uustv.com/,打开后如下图所示:

我们接着按 F12 打开开发者工具并选择 Network,然后输入一个名字,再点马上给我设计按钮,我们可以看到生成签名发送的请求如下所示:

现在我们就可以根据其生成签名了,实现代码如下所示:

url = 'http://www.uustv.com/'name = enter.get()if not name:    messagebox.showinfo('提示:', '请输入您的名字')else:    data = {        'word': name,        'sizes': 50,        # 'fonts': 'jfcs.ttf',  # 个性签        # 'fonts': 'qmt.ttf',  # 连笔签        # 'fonts': 'bzcs.ttf',  # 潇洒签        # 'fonts': 'lfc.ttf',  # 草体签        # 'fonts': 'haku.ttf',  # 合文签        # 'fonts': 'zql.ttf',  # 商务签        'fonts': 'yqk.ttf',  # 可爱签        'fontcolor': '#000000'    }    result = requests.post(url, data=data)    result.encoding = 'utf-8'    html = result.text    reg = '<div class="tu">.*?<img src="(.*?)"/></div>'    img_path = re.findall(reg, html)    # 图片完整路径    img_url = url + img_path[0]    # 获取图片内容    response = requests.get(img_url).content    f = open('{}.gif'.format(name), 'wb')    # 写入    f.write(response)    # 把图片放到窗口上,显示图片    bm = ImageTk.PhotoImage(file='{}.gif'.format(name))    label = Label(root, image=bm)    label.bm = bm    # 绘图    label.grid(row=2, columnspan=2)

然后我们再将签名显示在 tkinter 的 GUI 窗口上即可,实现代码如下所示:

# 创建窗口root = Tk()# 标题root.title('签名设计')# 窗口大小root.geometry('600x300')# 窗口的初始位置root.geometry('+400+200')# 标签的控件label = Label(root, text='输入名字', font=('宋体', 16), fg='blue')label.grid()# 输入框enter = Entry(root, font=('宋体', 16))# 设置输入框的位置enter.grid(row=0, column=1)# 按钮button = Button(root, text='设计签名', font=('宋体', 16), command=sign)# 设置按钮的位置button.grid(row=1, column=0)# 显示窗口root.mainloop()

以商务签为例,我们来看一下效果:

是不是有内味了。

源码在公号后台回复 200602  获取。