Create Custom Signature Images with Python Tkinter – A Step‑by‑Step Guide
This tutorial walks you through using Python's built‑in Tkinter library to build a small GUI application that fetches personalized signature images from an online service, downloads them, and displays the result, complete with code examples and UI design tips.
Tkinter is Python's standard GUI library, allowing rapid creation of graphical applications. This tutorial demonstrates building a custom signature generator using Tkinter.
Tkinter Overview
Because Tkinter is bundled with Python, you can import it directly. from tkinter import * Tkinter provides components such as labels, entries, buttons, frames, and comboboxes. The following image shows the available widgets.
Obtaining Personalized Signature Images
The first step is to locate a suitable online signature‑generation site and inspect its request. An example site is http://www.yishuzi.com/b/13.htm . Using the browser's developer tools, you can set colors and input a name to generate a signature.
Send a POST request with the parameters id (the name) and id1 (the font style) using requests.post().
import requests
from urllib.request import urlretrieve
url = 'http://www.yishuzi.com/b/re13.php'
d = requests.post(url, data={
'id': '测试签名',
'zhenbi': '20191123',
'id1': '904',
'id2': '#FFFFFF',
'id4': '#000000',
'id6': '#000000'
})
print(d.content.decode("utf-8"))The response contains a URL to the generated image, which can be downloaded with urlretrieve().
def create_sign(word):
url = 'http://www.yishuzi.com/b/re13.php'
d = requests.post(url, data={
'id': word,
'zhenbi': '20191123',
'id1': '904',
'id2': '#FFFFFF',
'id4': '#000000',
'id6': '#000000'
})
myurl = d.content.decode("utf-8").split('"')[1]
urlretrieve(myurl, word + '.png')Designing the GUI
With create_sign() ready, build a Tkinter window that includes Label, Entry, Button, Frame, and Combobox widgets.
import tkinter as tk
from tkinter import ttk, PhotoImage, Label, Entry, Button, Frame
root = tk.Tk()
root.title("Signature Design by: Fast Learn Python")
root.geometry("600x400")
bg_image = PhotoImage(file='background.png')
bg_label = Label(root, image=bg_image)
bg_label.place(relwidth=1, relheight=1)
frame = Frame(root, bg='#edcc79', bd=5)
frame.place(relx=0.5, rely=0.1, relwidth=0.75, relheight=0.1, anchor='n')
font_label = Label(frame, text='输入签名:', font=('微软雅黑', 16), fg='black')
font_label.place(relwidth=0.25, relheight=1)
name_entry = Entry(frame, font=('微软雅黑', 16))
name_entry.place(relx=0.25, relwidth=0.5, relheight=1)
btn = Button(frame, text='生成', command=lambda: create_sign(name_entry.get()))
btn.place(relx=0.75, relwidth=0.25, relheight=1)
# Combobox example
cv = tk.StringVar()
com = ttk.Combobox(root, textvariable=cv)
com['value'] = ('Option1', 'Option2', 'Option3', 'Option4')
com.current(0)
com.pack()
root.mainloop()Running the program opens a window where you can type a name, click the button, and automatically obtain a personalized signature image.
This completes the Tkinter practical example.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Python Crawling & Data Mining
Life's short, I code in Python. This channel shares Python web crawling, data mining, analysis, processing, visualization, automated testing, DevOps, big data, AI, cloud computing, machine learning tools, resources, news, technical articles, tutorial videos and learning materials. Join us!
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
