利用Python写个新年贺卡生成器,提前祝大家小伙伴们新年快乐呀~

前言 离过年还有19天,在这里提交祝各位小伙伴新年快乐呀~
先说句题外话:疫情还是比较严峻,各位小伙伴要是出门的话一定要做好防护措施呀,不出门的话最好。
大家都不容易,虽说不是专业的也帮不上什么忙,但至少别添乱了。网上很多考验智商的事情,希望大家有明辨是非的能力,多看官方报道,至少比那些东西靠谱很多。
OK,言归正转,农历新年快到了,写了个新年贺卡生成器,分享给大家,祝大家新年快乐。
让我们愉快地开始吧~
开发工具 Python版本: 3.6.4
相关模块:
os模块;
io模块;
sys模块;
pillow模块;
pyqt5模块;
以及一些python自带的模块。
环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可。各位小伙伴新年快乐呀~
做个贺卡生成器的原理其实很简单,首先找一些喜庆的背景图片:
利用Python写个新年贺卡生成器,提前祝大家小伙伴们新年快乐呀~
文章图片

用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

为了展示好的效果,再用pyqt5做个GUI:
利用Python写个新年贺卡生成器,提前祝大家小伙伴们新年快乐呀~
文章图片

内容路径就是写了祝福语的文本文件:
利用Python写个新年贺卡生成器,提前祝大家小伙伴们新年快乐呀~
文章图片

【利用Python写个新年贺卡生成器,提前祝大家小伙伴们新年快乐呀~】其他大家都能看懂,我就不多解释了。大功告成,完整源代码详见个人主页简介获取相关文件~

    推荐阅读