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 工具、公众号等
相关推荐
卷毛的技术笔记1 小时前
告别硬编码!Spring AI Alibaba 实现 AI Agent 智能工具调用(Tool Calling)
java·人工智能·后端·python·spring·ai编程
编程大师哥1 小时前
匿名函数 lambda + 高阶函数
java·python·算法
vb2008111 小时前
FastAPI APIRouter
开发语言·python
会编程的土豆1 小时前
Go 语言反射(Reflection)详解
开发语言·后端·golang
adrninistrat0r1 小时前
Java调用链MCP分析工具
java·python·ai编程
喵个咪2 小时前
GoWind Toolkit Go后端代码生成 完整全流程实战
后端·go·orm
杨充2 小时前
1.3 浮点型数据设计灵魂
开发语言·python·算法
basketball6162 小时前
Go 语言从入门到进阶:4. 数组和MAP使用方法总结
开发语言·后端·golang
qq_2518364572 小时前
SpringBoot+Vue 共享电池柜管理系统 完整实现 前后端分离项目实战 完整代码
vue.js·spring boot·后端
zhangxingchao2 小时前
AI 大模型核心六:量化、Workflow 与 Agent、多轮 RAG
前端·人工智能·后端