生活中有很多場景都需要我們簽字(簽名),如果是一些不重要的場景,我們的簽名好壞基本無所謂了,但如果是一些比較重要的場景,如果我們的簽名比較差的話,就有可能給別人留下不太好的印象了,俗話說字如其人嘛,本文我們使用 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()
以商務籤爲例,我們來看一下效果:
是不是有內味了。
作者:程序員野客
公號:Python小二
鏈接:查看更多內容