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

时间:2024-10-04 16:23:08

 

前言

离过年还有十多天,在这里提前祝各位小伙伴新年快乐呀~

先说句题外话:疫情还是比较严峻,各位小伙伴要是出门的话一定要做好防护措施呀,不出门的话最好。编程学习资料点击领取

大家都不容易,虽说不是专业的也帮不上什么忙,但至少别添乱了。网上很多考验智商的事情,希望大家有明辨是非的能力,多看官方报道,至少比那些东西靠谱很多。

OK,言归正转,农历新年快到了,写了个新年贺卡生成器,分享给大家,祝大家新年快乐。

让我们愉快地开始吧~

开发工具

Python版本: 3.6.4

相关模块:

os模块;

io模块;

sys模块

pillow模块;

pyqt5模块;

以及一些python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。各位小伙伴新年快乐呀~

做个贺卡生成器的原理其实很简单,首先找一些喜庆的背景图片:

 

用pillow模块在这些背景图片上写字

  1. '''生成贺卡'''
  2. def generate(self):
  3. # 检查路径是否存在
  4. content_path = self.content_edit.text()
  5. bg_path = self.bg_edit.text()
  6. font_path = self.font_edit.text()
  7. font_color = self.font_color_combobox.currentText()
  8. if (not self.checkFilepath(content_path)) or (not self.checkFilepath(bg_path)) or (not self.checkFilepath(font_path)):
  9. self.card_image = None
  10. return False
  11. # 写贺卡
  12. contents = open(content_path, encoding='utf-8').read().split('\n')
  13. font_card = (font_path, self.font_size)
  14. image = Image.open(bg_path).convert('RGB')
  15. draw = (image)
  16. ((180, 30), contents[0], font=font_card, fill=font_color)
  17. for idx, content in enumerate(contents[1: -1]):
  18. ((220, 40+(idx+1)*40), content, font=font_card, fill=font_color)
  19. ((180, 40+(idx+2)*40+10), contents[-1], font=font_card, fill=font_color)
  20. # 显示
  21. fp = ()
  22. (fp, 'BMP')
  23. qtimg = ()
  24. ((), 'BMP')
  25. qtimg_pixmap = (qtimg)
  26. self.show_label.setPixmap(qtimg_pixmap)
  27. self.card_image = image
  28. 复制代码

为了展示好的效果,再用pyqt5做个GUI:

 

内容路径就是写了祝福语的文本文件:

 

其他大家都能看懂,我就不多解释了。大功告成,完整源代码详见相关文件~