用Python写个新年贺卡生成器

作者:大飞攻城狮 时间:2023-08-26 00:56:45 

用Python写个新年贺卡生成器

前言

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

先说句题外话:疫情还是比较严峻,各位小伙伴要是出门的话一定要做好防护措施呀,不出门的话最好。

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

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写个新年贺卡生成器

来源:https://blog.csdn.net/m0_63171455/article/details/122466854

标签:Python,新年,贺卡
0
投稿

猜你喜欢

  • pytorch如何定义新的自动求导函数

    2021-02-10 20:14:49
  • OpenCV计算平均值cv::mean实例代码

    2023-06-19 10:26:02
  • 基于jQuery的自动完成插件

    2011-02-05 10:55:00
  • Python多进程并发与同步机制超详细讲解

    2022-11-22 08:35:02
  • 正确认识MySQL对服务器端光标的限制

    2008-12-03 15:52:00
  • Pytorch中的gather使用方法

    2021-11-22 06:11:49
  • win10下安装Go和Goland的详细教程

    2024-02-12 10:57:16
  • python装饰器原理源码示例分析

    2022-03-25 18:31:04
  • 重新restore了mysql到另一台机器上后mysql 编码问题报错

    2024-01-24 05:10:41
  • python 获取本机ip地址的两个方法

    2023-04-08 00:17:30
  • Pycharm学习教程(2) 代码风格

    2022-03-21 08:38:31
  • ASP.NET MVC4入门教程(八):给数据模型添加校验器

    2024-06-05 09:27:38
  • Python模拟百度登录实例详解

    2023-07-18 19:06:46
  • python实现比较文件内容异同

    2022-11-10 19:25:27
  • Python的re模块正则表达式操作

    2023-08-21 11:47:08
  • 对变量赋值的理解--Pyton中让两个值互换的实现方法

    2022-07-05 02:51:56
  • 基于JavaScript 实现拖放功能

    2024-04-22 22:29:20
  • python opencv 简单阈值算法的实现

    2023-04-04 04:23:03
  • 深入浅析Python的类

    2021-01-09 08:42:13
  • python飞机大战pygame碰撞检测实现方法分析

    2023-01-05 18:55:52
  • asp之家 网络编程 m.aspxhome.com