时间:2021-01-11 python教程 查看: 875
这篇文章主要介绍了Python生成个性签名图片获取GUI过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
先来看看程序运行的样子:
所以,程序的原理是 从一个url = ‘
http://www.uustv.com/
'中爬取个性签名的图片。
在该网页中审查该图片的元素,然后找到该图片的imgur
使用正则表达式直接定位
程序的后面使用到了tkinter的 GUI简易界面,用于和用户的简单交互,非常方便。
整个程序的完整代码如下: (有任何问题欢迎留言讨论)
import tkinter as tk
from tkinter import messagebox
import requests
import re
from PIL import Image,ImageTk
def design():
name=et.get()
# print(name)
name=name.strip()
if name == '':
messagebox.showinfo('提示',message='请输入姓名')
else:
#获取签名图片
data={
'word': name,
'sizes': 60,
'fonts': 'haku.ttf', # jfcs.ttf个性签 zql.ttf 商务签 qmt.ttf连笔签 bzcs.ttf潇洒签 lfc.ttf草体签 haku.ttf合同签 yqk.ttf可爱签
'fontcolor': '# 000000'
}
url='http://www.uustv.com/'
result=requests.post(url,data)
# print(result) Response [200]
#设置编码
result.encoding='utf-8'
html=result.text
#print(html) 网页源代码 b
#正则表达式
reg=r'<div class="tu"><img src="(.*?)"/></div>'
imgpath=re.findall(reg,html)
imgurl=url+imgpath[0]
# print(imgurl)
#保存图片
response=requests.get(imgurl).content
with open('{}.gif'.format(name),'wb')as f:
f.write(response)
#显示图片
bm=ImageTk.PhotoImage(file='{}.gif'.format(name))
label2=tk.Label(window,image=bm)
label2.bm=bm
label2.grid(row=2,columnspan=2)
#设置窗口
window=tk.Tk()
window.geometry('600x300+200+200')
window.title('签名设计')
#设置控件
label=tk.Label(window,text='姓名:',font=('宋体',20),fg='red')
label.grid()
et=tk.Entry(window,font=('宋体',20))
et.grid(row=0,column=1)
bt=tk.Button(window,text='设计签名',font=('宋体',15),width=10,height=2,command=design)
bt.grid(row=1,column=1)
window.mainloop()
值得注意的是,在headers里有不同的签名字体可以设置,但是同一名字文件会覆盖。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持python博客。