夜里下班了回来,我发现女友坐到写字台前“搞事”。禁不住有点儿诧异,竟然沒有葛优瘫,竟然沒有刷B站!!!
可是看她一会儿抓头,时而写些哪些。
我便跑以往问:商品,你在干嘛呢?
她讲:我今天签名字的过程中察觉自己写的名称难看,回来就惦记着练一下,可是如何都写不太好。
“不要着急,先去刷一下视频歇一下。”
她消沉地迈向了布艺沙发…
看她那样,我心痛啊,得做点什么让她开心一下。灵机一闪,比不上就给她做一个个性签名软件吧!
构思
说干咱就干!
稍微想了一下,这件事情咱不可以逞能,终究并不是专业的,搞一个那类实实在在的艺术字体或是有点儿困难的。我善于 Python 啊,我要去找一个签字网址协作一下就可以了。我带上技术性,它带上插口,我俩一拍即合!
开启百度搜索,关键词搜索“艺术签名”,立刻出去一堆网址。我随意打开了一个,页面是这样子的:
首页
看上去还不错,我们先看一下是不是你一个好伙伴(可以给予艺术字体的插口)。
我立即开启开发者模式,随后在文本框键入“阿花”,点一下转化成,页面上出現了艺术字体。与此同时,大家一起来看看互联网要求。在这种互联网要求中,我留意到了2个要求,有可能跟大家的插口相关。
互联网要求
下面,我们一个个查询这两个要求。开启第一个要求的详细信息,如下所示所显示:
互联网要求1
见到这一要求的主要参数,我就知道这也是人们的总体目标,因为它包括了大家必须发给网站后台的內容。大家再看一下要求浏览便了解,这一要求回到的是一个 html 网页页面:
互联网要求浏览
回到的网页页面大致是相匹配着这一网页页面的內容,可是在艺术签名那边留了个空缺,沒有表明艺术签名。
互联网要求回应
大家继续看回应內容,可以留意到那一个空白的html是那样的:
<img id=\"showImg\" src=\"cache/162816844360698.png\"/>
这很显而易见是一个以时间格式取名的照片。
大家再看一下第二个要求,是否要求的具体内容和这个图片名字一毛一样呢?
互联网要求2
这意思很显著了,网址先回到一个网页页面,随后再要求一个照片,把图片载入到这一网页页面。
了解这一步骤以后,大家签字一部分就完成了,即:
- 将名字、字体样式主要参数推送要求,获得到一个 HTML;
- 分析 HTML,寻找签名图片名字;
- 推送获得照片要求,获得签名图片。
签字一部分解决以后,剩余的便是画一个页面,让客户键入名字、挑选 字体样式,随后启用签字插口就可以了。
完成
要求签名图片
这一站点的要求为 post 请求,一共有四个主要参数:
word: 名字
fonts: 字体样式
sizes: 文字大小
fontcolor: 字体颜色
colors: 签字背景色
我感觉这一站点的文字大小、背景色、字体颜色都很合乎我的口感,因此我不准备改了。只必须键入名称和字体样式就可以了。
关键编码为:
url = \'http://www.kachayv.cn/\'
data = {
\'word\': name,
\'fonts\': mapping_list[font],
\'sizes\': 60,
\'fontcolor\': \'#ffffff\',
\'colors\': \'#FD5668\'
}
result = requests.post(url, data=data)
result.encoding = \'utf-8\'
html = result.text
print(html)
p = re.compile(\'<img id=\"showImg\" src=\"cache/(.*?)\"/>\')
match = p.findall(html)
urlretrieve(\'http://www.kachayv.cn/cache/\' match[0], \'./pic.jpg\')
这儿先获得签名图片的网站地址,随后应用 urlretrieve 方式储存到当地。
设计方案和完成软件界面
页面內容也非常简单,大家只必须名字文本框、字体样式下拉选择框和一个提交按钮就可以了。大家或是应用 tkinter 来简易画页面。
关键编码为:
def draw_window(self):
self.init_window = Tk()
self.init_window.title(\"阿花专享签名设计\")
self.init_window.geometry(\"800x500\")
self.init_window.geometry(\" 400 200\")
# 名字
self.name_label = Label(self.init_window, text=\'大名鼎鼎\', font=(\'微软雅黑\', 16), fg=\'black\')
self.name_label.grid(row=0, column=0, columnspan=1)
self.name_entry = Entry(self.init_window, font=(\'宋体字\', 16))
self.name_entry.grid(row=0, column=1)
# 挑选 字体样式方式
self.font_label = Label(self.init_window, text=\'字体样式\', font=(\'微软雅黑\', 16), fg=\'black\')
self.font_label.grid(row=0, column=5, columnspan=1)
self.combox_list = ttk.Combobox(self.init_window, textvariable=StringVar())
self.combox_list.grid(row=0, column=6, sticky=\'W\')
self.combox_list[\"value\"] = (\"行便签\", \"非常艺术签\", \"洒脱签\", \"笔写连笔字\", \"行草签\", \"花样签\", \"温柔女生\", \"个性化签\", \"商务接待签\", \"正楷体\", \"正楷签\", \"情便签\", \"卡通可爱签\")
self.combox_list.current(0) # 挑选 第一个
# 开启按键
self.button = Button(self.init_window, text=\'幸福袭来\', font=(\'微软雅黑\', 16), command=self.get_sign)
self.button.grid(row=1, column=3, rowspan=2, sticky=\'W\')
# 图片展示
self.pic_label = Label(self.init_window)
self.pic_label.grid(row=3, column=1, rowspan=10, columnspan=5, sticky=\'NW\')
这里边有一个繁琐的地区,便是网址的字体样式是类似“19.ttf”这样子的,我毫无疑问不可以把这个表明在页面上,而 tkinter 的下拉选择框较为傻子,不可以以 key-value 的方式传值。
没法,不可以在一棵树上吊死,我只有在中间加一个变换:在页面上表明人们能看懂的汉语,获得到这一手写字体名以后,再跟网址必须的火星文字做一个投射。
页面运作以后,是这样子的:
运作页面
结合
大家将上边两部份的编码融合在一起,随后再运行,全部操作流程是如此的:
运作
续篇
女友在沙发上躺了不久,我将她喊到小书房,说:我给你进行了一个专享签名软件,你看一下合不合胃口?
她勇于尝试了一下,随后回头来对我说:丈夫,太棒了!尽管页面丑了点,可是那么短期内就把我的烦恼解决了,感谢你!
恋人生活还要继续的,平平淡淡而质朴。实际上这个问题压根不用我亲手做个丑恶的手机软件,她立即去平台上实际操作,几秒的事。可是,我花一点时间给她做一个专享的,会让她更高兴。实际上他们并不一定你博学多才,不用你有多大本领,只必须你在他们要的情况下给她们温婉一击,在不知不觉给她们一个意外惊喜,这就可以了!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。