IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python实用工具,pyqt5模块,Python实现自动生成艺术签名的小工具 -> 正文阅读

[Python知识库]Python实用工具,pyqt5模块,Python实现自动生成艺术签名的小工具

前言:

利用pyqt5实现一个简单的GUI。
废话不多说,让我们愉快地开始吧~

个性签名

开发工具

**Python版本:**3.6.4

相关模块:

requests模块;

PyQt5模块;

pillow模块;

以及一些python自带的模块。

环境搭建

安装python并添加到环境变量,pip安装需要的相关模块即可。

原理简介

原理说起来蛮简单的,首先,去找个可以根据输入的姓名来为你生成艺术签名的网站:

http://www.jiqie.com/a/14.htm

上面那个网站大概长这样子:

个性签名

简单抓包(就是F12打开开发者工具或鼠标右键审查元素,然后点击一下给我设计,看下生成艺术签名需要构造哪些请求,简单分析一下就行)可以发现请求下图中这个链接就可以返回生成的艺术签名图片链接地址了:

headers

请求时需要携带的参数如下:

参数

很容易可以分析出:

1 id: 你的名字
2 zhenbi: 固定值
3 id1和id2: 艺术签名类型相关参数
4 id3和id4: 艺术签名字体颜色相关参数

于是我们很容易就可以实现根据输入的姓名生成艺术签名啦:

'''生成签名'''
def generate(self):
    font2ids_dict = {
                        '一笔艺术签': ['901', '15'],
                        '连笔商务签': ['904', '15'],
                        '一笔商务签': ['905', '14'],
                        '真人手写': ['343', '14'],
                        '卡通趣圆字': ['397', '14'],
                        '暴躁字': ['380', '14']
                }
    color2ids_dict = {
                        'Black': ['#000000', '#FFFFFF'],
                        'Blue': ['#0000FF', '#FFFFFF'],
                        'Red': ['#FF0000', '#FFFFFF'],
                        'Green': ['#00FF00', '#FFFFFF'],
                        'Yellow': ['#FFFF00', '#FFFFFF'],
                        'Pink': ['#FFC0CB', '#FFFFFF'],
                        'DeepSkyBlue': ['#00BFFF', '#FFFFFF'],
                        'Cyan': ['#00FFFF', '#FFFFFF'],
                        'Orange': ['#FFA500', '#FFFFFF'],
                        'Seashell': ['#FFF5EE', '#FFFFFF']
                    }
    url = 'http://www.jiqie.com/a/re14.php'
    headers = {
                'Referer': 'http://www.jiqie.com/a/14.htm',
                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36',
                'Host': 'www.jiqie.com',
                'Origin': 'http://www.jiqie.com'
            }
    ids_0 = font2ids_dict[self.font_combobox.currentText()]
    ids_1 = color2ids_dict[self.color_combobox.currentText()]
    data = {
                'id': self.name_edit.text(),
                'zhenbi': '20191123',
                'id1': ids_0[0],
                'id2': ids_0[1],
                'id3': ids_1[0],
                'id5': ids_1[1]
            }
    res = requests.post(url, headers=headers, data=data)
    image_url = re.findall(r'src="(.*?)"', res.text)[0]
    self.show_image_ext = image_url.split('.')[-1].split('?')[0]
    res = requests.get(image_url)
    fp = open('tmp.%s' % self.show_image_ext, 'wb')
    fp.write(res.content)
    fp.close()
    self.show_image = Image.open('tmp.%s' % self.show_image_ext).convert('RGB')
    self.updateimage()
    os.remove('tmp.%s' % self.show_image_ext)

然后再用pyqt5做个简单的GUI界面呗,大概长这样子:

签名生成器

其中GUI中的图片可以用QLabel()来显示,一个简单的例子如下:

1 show_label = QLabel()
2 show_image = Image.open('resource/image/ori.jpg').convert('RGB')
3 fp = io.BytesIO()
4 show_image.save(fp, 'JPEG')
5 qtimage = QtGui.QImage()
7 qtimage.loadFromData(fp.getvalue(), 'JPEG')
8 qtimage_pixmap = QtGui.QPixmap.fromImage(qtimage)
9 show_label.setPixmap(qtimage_pixmap)

基本都是pyqt5的操作。

文章到这里就结束了,感谢你的观看,关注我每天分享Python小工具系列,下篇文章分享PyQt5+qrcode制作二维码生成工具

为了感谢读者们,我想把我最近收藏的一些编程干货分享给大家,回馈每一个读者,希望能帮到你们。

干货主要有:

① 2000多本Python电子书(主流和经典的书籍应该都有了)

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)

⑥ 两天的Python爬虫训练营直播权限

资源
All done~完整源代码+干货加Python新手学习交流群:594356095

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-13 17:25:22  更:2021-07-13 17:26:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 19:17:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码