晚上下班回来,我发现女神坐在书桌前“搞事情”。不禁有点惊讶,居然没有葛优躺,居然没有刷B站!!!
但是看她时而抓头,时而写些什么。
我就跑过去问:女神,你在干嘛呢/p>
她说:我今天签名字的时候发现自己写的名字好丑,回来就想着练一下,但是怎么都写不好。
“不要着急,先去刷刷视频歇一下。”
她丧气地走向了沙发…
看她这样,我心疼啊,得做点什么让她高兴一下。灵机一闪,不如就给她做个个性签名软件吧!
不好,这样你们不就知道我和女神合租了/p>
羡慕就说出来!哈哈哈哈
思路
说干咱就干!
略微想了一下,这事咱不能蛮干,毕竟不是专业的,搞一个那种实打实的艺术字还是有点难度的。我擅长 Python 啊,我去找个签名 站合作一下就行了。我带着技术,它带着接口,我们俩一拍即合!
打开百度,搜索关键词“艺术签名”,马上出来一堆 站。我随便打开了一个,界面是这样子的:
/p>
看起来还不错,咱们先看看你是不是一个好搭档(能够提供艺术字的接口)。
我直接打开开发者模式,然后在输入框输入“阿花”,点击生成,界面上出现了艺术字。同时,我们来看看 络请求。在这些 络请求中,我注意到了两个请求,有可能跟我们的接口有关。
下来,咱们一个个查看这两个请求。打开第一个请求的详情,如下所示:
/p>
看到这个请求的参数,我就知道这是我们的目标,因为它包含了我们需要发送给 站后台的内容。我们再看一下请求预览便知道,这个请求返回的是一个 html 页面:
返回的页面大体是对应着这个 页的内容,但是在艺术签名那里留了个空白,没有显示艺术签名。
我们继续看响应内容,可以观察到那个空白处的html是这样的:
这很显然是一个以时间戳命名的图片。
我们再看看第二个请求,是不是请求的内容和这个图片名称一毛一样呢/p>
这意思很明显了, 站先返回一个页面,然后再请求一个图片,把图片加载到这个页面。
熟悉这个流程之后,我们签名部分就搞定了,即:
- 将姓名、字体参数发送请求,获取到一个 HTML;
- 解析 HTML,找到签名图片名称;
- 发送获取图片请求,得到签名图片。
签名部分搞定之后,剩下的就是画一个界面,让用户输入姓名、选择字体,然后调用签名接口就行。
实现
请求签名图片
这个 站的请求为 post 请求,一共有四个参数:
我感觉这个 站的字体大小、背景颜色、字体颜色都很符合我的口味,所以我就不打算改了。只需要输入名字和字体就行。
核心代码为:
这里先获取签名图片的 址,然后使用 方法保存到本地。
设计和实现软件界面
界面内容也比较简单,我们只需要姓名输入框、字体下拉选择框和一个提交按钮就可以了。我们还是使用 tkinter 来简单画界面。
核心代码为:
这里面有一个麻烦的地方,就是 站的字体是类似于“19.ttf”这样子的,我肯定不能把这个显示在界面上,而 tkinter 的下拉选择框比较傻瓜,不能以 key-value 的形式传值。
没办法,不能在一棵树上吊死,我只能在中间加一个转换:在界面上显示人类看得懂的中文,获取到这个中文字体名之后,再跟 站需要的火星文做个映射。
界面运行之后,是这样子的:
/p>
/p>
合体
我们将上面两部分的代码整合在一起,然后再运行,整个操作过程是这样的:/p>
/p>
后记
女神在沙发上躺了没多久,我把她喊到书房,说:我给你做了一个专属签名软件,你看看合不合胃口/p>
她尝试了一下,然后转过头来对我说:哇,你真棒!虽然界面丑了点,但是这么短时间就把我的烦恼解决了,谢谢你!
舔狗生活就是这样的,平淡而朴实。其实这个问题根本不需要我动手做个丑陋的软件,她直接去 站上操作,几秒钟的事。但是,我花点时间给她做一个专属的,会让她更开心。其实她们并不需要你才华横溢,不需要你有多大本事,只需要你在她们需要的时候给她们温柔一击,在不经意间给她们一个惊喜,这就够了!你觉得对吗/p>
⑥项目源码案例分享有
如果你用得到的话可以直接拿走,在我的QQ技术交流群里群 :948351247(纯技术交流和资源共享,广告勿入)以自助拿走
点击这里 领取
/p> 文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览208102 人正在系统学习中 Python源码
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!