用Python寫個(gè)新年賀卡生成器

前言
離過年還有十多天,在這里提前祝各位小伙伴新年快樂呀~
先說句題外話:疫情還是比較嚴(yán)峻,各位小伙伴要是出門的話一定要做好防護(hù)措施呀,不出門的話最好。
大家都不容易,雖說不是專業(yè)的也幫不上什么忙,但至少別添亂了。網(wǎng)上很多考驗(yàn)智商的事情,希望大家有明辨是非的能力,多看官方報(bào)道,至少比那些東西靠譜很多。
OK,言歸正轉(zhuǎn),農(nóng)歷新年快到了,寫了個(gè)新年賀卡生成器,分享給大家,祝大家新年快樂。
讓我們愉快地開始吧~
開發(fā)工具
Python版本: 3.6.4
相關(guān)模塊:
os模塊;
io模塊;
sys模塊;
pillow模塊;
pyqt5模塊;
以及一些python自帶的模塊。
環(huán)境搭建
安裝Python并添加到環(huán)境變量,pip安裝需要的相關(guān)模塊即可。各位小伙伴新年快樂呀~
做個(gè)賀卡生成器的原理其實(shí)很簡(jiǎn)單,首先找一些喜慶的背景圖片:

用pillow模塊在這些背景圖片上寫字
'''生成賀卡'''
def generate(self):
# 檢查路徑是否存在
content_path = self.content_edit.text()
bg_path = self.bg_edit.text()
font_path = self.font_edit.text()
font_color = self.font_color_combobox.currentText()
if (not self.checkFilepath(content_path)) or (not self.checkFilepath(bg_path)) or (not self.checkFilepath(font_path)):
self.card_image = None
return False
# 寫賀卡
contents = open(content_path, encoding='utf-8').read().split('\n')
font_card = ImageFont.truetype(font_path, self.font_size)
image = Image.open(bg_path).convert('RGB')
draw = ImageDraw.Draw(image)
draw.text((180, 30), contents[0], font=font_card, fill=font_color)
for idx, content in enumerate(contents[1: -1]):
draw.text((220, 40+(idx+1)*40), content, font=font_card, fill=font_color)
draw.text((180, 40+(idx+2)*40+10), contents[-1], font=font_card, fill=font_color)
# 顯示
fp = io.BytesIO()
image.save(fp, 'BMP')
qtimg = QtGui.QImage()
qtimg.loadFromData(fp.getvalue(), 'BMP')
qtimg_pixmap = QtGui.QPixmap.fromImage(qtimg)
self.show_label.setPixmap(qtimg_pixmap)
self.card_image = image
復(fù)制代碼為了展示好的效果,再用pyqt5做個(gè)GUI:

內(nèi)容路徑就是寫了祝福語(yǔ)的文本文件:

總結(jié)
到此這篇關(guān)于用Python寫個(gè)新年賀卡生成器的文章就介紹到這了,更多相關(guān)Python新年賀卡內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
成功解決ValueError:?Supported?target?types?are:('binary
本文給大家分享成功解決ValueError:?Supported?target?types?are:('binary',?'multiclass').?Got?'continuous'?instead.的錯(cuò)誤問題,需要的朋友可以參考下2023-03-03
Python?FastAPI?Sanic?Tornado?與Golang?Gin性能實(shí)戰(zhàn)對(duì)比
本文將深入比較Python的FastAPI、Sanic、Tornado以及Golang的Gin框架的各種特性、性能表現(xiàn)以及適用場(chǎng)景,通過詳實(shí)的性能測(cè)試和實(shí)際示例代碼,將探討它們?cè)跇?gòu)建現(xiàn)代高性能應(yīng)用中的優(yōu)劣勢(shì),以便開發(fā)者根據(jù)需求做出明智的選擇2024-01-01
Python函數(shù)式編程藝術(shù)之修飾器運(yùn)用場(chǎng)景探索
本文將詳細(xì)介紹Python修飾器的概念,提供詳細(xì)的示例,并介紹如何使用它們來優(yōu)化和擴(kuò)展代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
Python利用Pillow(PIL)庫(kù)實(shí)現(xiàn)驗(yàn)證碼圖片的全過程
這篇文章主要給大家介紹了關(guān)于Python利用Pillow(PIL)庫(kù)實(shí)現(xiàn)驗(yàn)證碼圖片的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
關(guān)于python實(shí)現(xiàn)常用的相似度計(jì)算方法
這篇文章主要介紹了關(guān)于python實(shí)現(xiàn)常用的相似度計(jì)算方法,最初的相似度計(jì)算是為了表征向量的重合程度的,在這里最經(jīng)典的就是余弦相似度了,當(dāng)然使用正弦或者是正切等等三角函數(shù)也都是可以的,需要的朋友可以參考下2023-07-07

