制作艺术签名(电子签名生成)
在线制作艺术签名(电子签名生成)徐大兄弟2021-05-29 11:03:15
相关文件
关注并私信小编给大家分享源码
开发工具
安装python并添加到环境变量,pip安装需要的相关模块即可。
原理介绍
原理说起来蛮简单的,首先,去找个可以根据输入的姓名来为你生成艺术签名的网站:
http://www.jiqie.com/a/14.htm
网站就是这个样子的哟
http://www.jiqie.com/a/14.htm
简单抓包(就是F12打开开发者工具,然后点击一下给我设计,看下生成艺术签名需要构造哪些请求,简单分析一下就行)可以发现请求下图中这个链接就可以返回生成的艺术签名图片链接地址了:
请求时需要携带的参数如下:
很容易就可以分析出:
id:你的名字zhenbi:固定值id1和id2:艺术签名类型相关参数id3和id4:艺术签名字体颜色相关参数
于是我们很容易就可以实现根据输入的姓名生成艺术签名啦:
defgenerate(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(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/81.0.4044.129Safari/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'class="aligncenter" 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()来显示,一个简单的例子如下:
show_label=QLabel()show_image=Image.open('resource/image/ori.jpg').convert('RGB')fp=io.BytesIO()show_image.save(fp,'JPEG')qtimage=QtGui.QImage()qtimage.loadFromData(fp.getvalue(),'JPEG')qtimage_pixmap=QtGui.QPixmap.fromImage(qtimage)show_label.setPixmap(qtimage_pixmap)
其他好像也没啥了,都是pyqt5的基本操作(定义一下组件,然后自己简单布局一下,给按钮设置一下触发的事件函数等等)。
就这样呗,大功告成了,完整源代码详见相关文件~
大家有啥问题或者有啥疑问都可以过来找小编的哟!关注私信小编就可以啦。或者在下方评论哟!!
相关推荐
- 湖北三江航天建筑工程有限公司以 60925996.99 元中标红林总装厂房二期工程
- 江西省天久地矿建设集团有限公司中标龙里县城区排涝工程勘测
- 北京中和联信供应链管理有限公司中标山地农业科技创新基地植物表型研究设备采购及伴随服务(重新招标)项目,中标金额 7764000 元
- 霸州市佳理鑫五金制品厂中标新乐市第三中学采购项目
- 河北泽辉市政工程有限公司等为路南区乡村振兴环境综合治理项目(一期)一标段工程总承包(EPC)(二次)中标候选人
- 河北石府建设工程有限公司10110736.93元中标高铁片区景观提升项目施工三标段
- 中基恒源建设有限公司中标高铁片区(含新华商业广场)景观提升项目施工五标段,中标价 13430852.95 元
- 九芝堂换帅完成工商变更
- 山西建设投资集团有限公司为大宁县水果供应链基地运营配套建设项目施工(二次)第一中标候选人
- 浙江宁慈建设工程有限公司以97028327元中标慈溪市城市生活垃圾收转运一体化建设项目(一期)
