孩子老师居然嫌弃我签名丑?立马给全班家长设计了一款签名软件!

303 阅读3分钟

​​

​导语

论一款签名的重要性~​

图片​​

来呀!来呀!关注我吧!!

Hello,小可爱们,

今天教大家制作一款非常实用的

自动签名生成器

当当当!

先来看看字体生成字体有哪些叭~

有128样式不同的字体哦

实现这款签名小程序的基本原理为:我们根据艺术签名网站生成签名的规则,模拟对于请求生成签名,然后将其显示在 tkinter 生成的 GUI 窗口中。

选择的网址:http://www.jiqie.com/a/14.htm

正文

环境安装部分:

**Python****版本:**3.6.4

requests模块;PyQt5模块;pillow模块;以及一些python自带的模块。

(一)设置了主要的字体,颜色组件。

   # --下拉框
        self.font_combobox = QComboBox()
        for item in ['一笔艺术签', '连笔商务签', '一笔商务签', '真人手写', '暴躁字']:
            self.font_combobox.addItem(item)
        self.color_combobox = QComboBox()
        for item in ['Black', 'Blue', 'Red', 'Green', 'Yellow', 
                     'Pink', 'DeepSkyBlue', 'Cyan', 'Orange', 'Seashell']:
            self.color_combobox.addItem(item)

​(二)简单抓包

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

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

可以分析出:

id: 你的名字
zhenbi: 固定值
id1和id2: 艺术签名类型相关参数
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)

(四)然后直接写一个GUI界面展示就可以了!

字体在线生成真的超好玩哦~

各种字体随意切换,喜欢赶紧试试吧!!

总结

选择一款适合你的艺术字签名叭~

会自己写之后到哪儿都可以拥有一款好看的签名啦!

源码基地企鹅群:#959755565# 自个儿来撒,之前的文章项目代码等都可以免费分享滴!!