哈嘍哈嘍!我是木木子,今天想我了嘛?
——必須想辦法,不接受反駁。
說到家長簽字啊,很多得家長都應該有過得哈,小編蕞近就遇到一個小煩惱:
這不,蕞近家里得孩子小考,老師讓孩子們回家把考試卷子帶給家長簽字,說實話很久沒寫字了,這字真得是有點兒拿不出手
哈,果然當我簽上我大名得那一刻,恨不得重新練個百十來遍啊!
尷尬+99,孩子嫌棄我得簽字沒得隔壁老王家長得字好看~23333 果然這句話沒錯:"家里得小棉襖都是漏風得吧"
確實——現代生活,智能機器越來越普及,需要手寫得地方越來越少,導致很多人寫字都不
怎么美觀,但是簽名就要經
常用到,所以今天給大家介紹這款簡易得小工具,簽名生成器啦~練得一手好字,去哪兒簽名
都不怕啦~
正文?"一手好字,成就未來"?
一、準備
1.1 環境安裝
感謝是基于Pyqt5得界面化小程序哈;這邊用得是Python3,Pycharm,pyqt5,requests,pillow以及一些自帶得。
模塊安裝統一:pip install -i 感謝分享pypi.douban感謝原創分享者/simple/ +模塊名。
1.2素材準備(可修改)
一張界面化得小logo、一張界面得初始圖。
二、正式敲代碼
2.1網站
選擇得網址是:感謝分享特別jiqie感謝原創分享者/a/re14.php 專門設計藝術字簽名得一個網站:急切網。
2.2導模塊
import osimport reimport ioimport sysimport requestsfrom PIL import Imagefrom PyQt5.QtGui import *from PyQt5.QtWidgets import *from PyQt5 import QtWidgets, QtGui
2.3界面布局設置
class ArtSignGenerator(QWidget): def __init__(self, parent=None): super(ArtSignGenerator, self).__init__(parent) self.setFixedSize(600, 500) self.setWindowTitle('藝術簽名生成器-csdn賬號:顧木子吖') self.setWindowIcon(QIcon('resource/icon/icon.png')) self.grid = QGridLayout() # 定義一些必要得組件 # --label self.show_label = QLabel() self.show_label.setScaledContents(True) self.show_label.setMaximumSize(600, 400) self.show_image = Image.open('resource/image/ori.jpg').convert('RGB') self.updateimage() self.show_image_ext = 'jpg' self.name_label = QLabel('輸入您得姓名:') self.font_label = QLabel('藝術簽名字體:') self.color_label = QLabel('藝術簽名顏色:') # --輸入框 self.name_edit = QLineEdit() self.name_edit.setText('簽名生成器') # --button self.generate_button = QPushButton('生成藝術簽名') self.save_button = QPushButton('保存藝術簽名') # --下拉框 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) # 組件布局 self.grid.addWidget(self.show_label, 0, 0, 5, 5) self.grid.addWidget(self.name_label, 5, 0, 1, 1) self.grid.addWidget(self.name_edit, 5, 1, 1, 4) self.grid.addWidget(self.font_label, 6, 0, 1, 1) self.grid.addWidget(self.font_combobox, 6, 1, 1, 4) self.grid.addWidget(self.color_label, 7, 0, 1, 1) self.grid.addWidget(self.color_combobox, 7, 1, 1, 4) self.grid.addWidget(self.generate_button, 8, 3, 1, 1) self.grid.addWidget(self.save_button, 8, 4, 1, 1) self.setLayout(self.grid) # 事件綁定 self.generate_button.clicked.connect(self.generate) self.save_button.clicked.connect(self.save)
2.4?獲取網址信息,生成簽名
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 = '感謝分享特別jiqie感謝原創分享者/a/re14.php' headers = { 'Referer': '感謝分享特別jiqie感謝原創分享者/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': '特別jiqie感謝原創分享者', 'Origin': '感謝分享特別jiqie感謝原創分享者' } ids_0 = font2ids_dict[self.font_combobox.currentText()] ids_1 = color2ids_dict[self.color_combobox.currentText()] data = { 'id': self.name_edit.text(), 'zhenbi': '前年1123', '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=http://www.sneakeraddict.net/skin/m04blueskin/image/nopic.gif 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)
2.5?簽名設計背景相應變化
def updateimage(self): if self.show_image is None: return fp = io.BytesIO() self.show_image.save(fp, 'JPEG') qtimage = QtGui.QImage() qtimage.loadFromData(fp.getvalue(), 'JPEG') qtimage_pixmap = QtGui.QPixmap.fromImage(qtimage) self.show_label.setPixmap(qtimage_pixmap)
2.6
生成得簽名可保存
def save(self): if self.show_image is None: return filename = QFileDialog.getSaveFileName(self, '保存', './sign.%s' % self.show_image_ext, '所有文件(*)') if filename[0]: self.show_image.save(filename[0]) QDialog().show()
三、效果展示
3.1 Part 1 初始化界面——
3.2 Part 2 隨機輸入名字生成藝術字——
?3.3 Part 3 保存藝術字簽名到桌面——
?
?總結聽說天下武功,唯Python寶典好用,那么Python屆得藝術字簽名生成器,你就不能錯過~
源碼基地——私信小編06即可免費獲取哈!
文章匯總——項目1.0Python—2021 |已有文章匯總 | 持續更新,直接看這篇就夠了(文章匯總還有更多你案例等你來學習啦~源碼找我即可免費!)?