Python生成个性签名图片获取GUI过程解析

yipeiwu_com5年前Python基础

这篇文章主要介绍了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设计】。

相关文章

python实现类的静态变量用法实例

本文实例讲述了python类的静态变量用法。分享给大家供大家参考。具体分析如下: 这里使用静态变量目的是在类中实现一个静态的队列,这里用数组实现,任何时候插入到队列中的数据不会和类的实例...

Python基于matplotlib实现绘制三维图形功能示例

Python基于matplotlib实现绘制三维图形功能示例

本文实例讲述了Python基于matplotlib实现绘制三维图形功能。分享给大家供大家参考,具体如下: 代码一: # coding=utf-8 import numpy as np...

pytorch实现建立自己的数据集(以mnist为例)

pytorch实现建立自己的数据集(以mnist为例)

本文将原始的numpy array数据在pytorch下封装为Dataset类的数据集,为后续深度网络训练提供数据。 加载并保存图像信息 首先导入需要的库,定义各种路径。 impor...

python中pygame针对游戏窗口的显示方法实例分析(附源码)

python中pygame针对游戏窗口的显示方法实例分析(附源码)

本文实例讲述了python中pygame针对游戏窗口的显示方法。分享给大家供大家参考,具体如下: 在这篇教程中,我将给出一个demo演示: 当我们按下键盘的‘f'键的时候,演示的窗口会切...

django+js+ajax实现刷新页面的方法

本文实例讲述了django+js+ajax实现刷新页面的方法。分享给大家供大家参考,具体如下: 在服务器开发的时候,为了方便将服务器对外开一个接口来操作,可以使用django制作网页,通...