21、用 Python + Pillow 实现「朋友圈海报图生成器」📸(图文合成 + 多模板 + 自动换行)

🎯 目标功能:

  • 输入文案,自动生成美观的朋友圈/宣传海报图
  • 支持自定义模板(背景图 + 字体 + logo)
  • 文案自动换行排版、居中对齐
  • 一键生成 JPG 或 PNG 格式图片

📦 依赖安装:

bash 复制代码
pip install pillow

📁 项目结构:

bash 复制代码
poster_generator/
├── generate_poster.py        # 主程序
├── assets/
│   ├── bg.jpg                # 背景图
│   ├── font.ttf              # 字体文件
│   └── logo.png              # 可选 logo
└── output/

🧠 generate_poster.py(主程序核心逻辑):

python 复制代码
from PIL import Image, ImageDraw, ImageFont
import textwrap, os
from datetime import datetime

# 路径配置
BG_PATH = "assets/bg.png"
FONT_PATH = "/System/Library/Fonts/STHeiti Medium.ttc"
LOGO_PATH = "assets/logo.png"
OUTPUT_DIR = "output"

# 样式配置
TEXT_COLOR = (255, 255, 255)
TEXT_SIZE = 40
MAX_WIDTH = 30  # 每行字符数限制
MARGIN_TOP = 300
LINE_SPACING = 15

def draw_text(draw, text, font, x, y, max_width):
    lines = textwrap.wrap(text, width=max_width)
    for line in lines:
        bbox = draw.textbbox((0, 0), user_text, font=font)
        w = bbox[2] - bbox[0]
        h = bbox[3] - bbox[1]
        # w, h = draw.textsize(line, font=font)
        draw.text(((800 - w) / 2, y), line, font=font, fill=TEXT_COLOR)
        y += h + LINE_SPACING
    return y

def generate_poster(text):
    os.makedirs(OUTPUT_DIR, exist_ok=True)

    # 背景图
    bg = Image.open(BG_PATH).convert("RGBA")
    draw = ImageDraw.Draw(bg)

    # 字体
    font = ImageFont.truetype(FONT_PATH, TEXT_SIZE)

    # 添加文本
    y = draw_text(draw, text, font, x=50, y=MARGIN_TOP, max_width=MAX_WIDTH)

    # 添加 logo
    if os.path.exists(LOGO_PATH):
        logo = Image.open(LOGO_PATH).convert("RGBA").resize((100, 100))
        bg.paste(logo, (680, 1200), mask=logo)

    # 保存图像
    filename = f"{OUTPUT_DIR}/poster_{datetime.now().strftime('%Y%m%d_%H%M%S')}.png"
    bg.save(filename)
    print(f"✅ 海报生成成功:{filename}")

if __name__ == "__main__":
    user_text = input("📩 请输入要生成海报的文案:\n")
    generate_poster(user_text)

🖼 示例效果:

假设你输入的文案是:

程序将输出一张图文结合的朋友圈海报,可直接用于朋友圈或公众号。


💡 可扩展方向:

  • 支持多模板选择(横版/竖版、红色/蓝色等)
  • 可加二维码(Pillow + qrcode)
  • 调用 AI 自动生成文案再配图
  • 集成到网页、CLI 工具、公众号等
相关推荐
南雨北斗32 分钟前
TP6使用PHPMailer发送邮件
后端
你的人类朋友35 分钟前
🤔什么时候用BFF架构?
前端·javascript·后端
weixin_418813872 小时前
Python-可视化学习笔记
笔记·python·学习
争不过朝夕,又念着往昔2 小时前
Go语言反射机制详解
开发语言·后端·golang
Danceful_YJ2 小时前
4.权重衰减(weight decay)
python·深度学习·机器学习
Zonda要好好学习3 小时前
Python入门Day5
python
绝无仅有3 小时前
企微审批对接错误与解决方案
后端·算法·架构
Super Rookie3 小时前
Spring Boot 企业项目技术选型
java·spring boot·后端
来自宇宙的曹先生3 小时前
用 Spring Boot + Redis 实现哔哩哔哩弹幕系统(上篇博客改进版)
spring boot·redis·后端
电商数据girl4 小时前
有哪些常用的自动化工具可以帮助处理电商API接口返回的异常数据?【知识分享】
大数据·分布式·爬虫·python·系统架构