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 工具、公众号等
相关推荐
水淹萌龙9 分钟前
玩转 Go 表达式引擎:expr 实战指南
开发语言·后端·golang
Python×CATIA工业智造12 分钟前
Pycatia二次开发基础代码解析:组件识别、选择反转与链接创建技术解析
python·pycharm
小宁爱Python29 分钟前
从零搭建 RAG 智能问答系统 6:Text2SQL 与工作流实现数据库查询
数据库·人工智能·python·django
m0_7482412337 分钟前
Java注解与反射实现日志与校验
java·开发语言·python
可触的未来,发芽的智生1 小时前
追根索源:换不同的词嵌入(词向量生成方式不同,但词与词关系接近),会出现什么结果?
javascript·人工智能·python·神经网络·自然语言处理
Yeats_Liao1 小时前
Go Web 编程快速入门 07.4 - 模板(4):组合模板与逻辑控制
开发语言·后端·golang
hu_nil1 小时前
LLMOps-第十一周作业
python·vllm
咖啡教室2 小时前
每日一个计算机小知识:MAC地址
后端·网络协议
咖啡教室2 小时前
每日一个计算机小知识:LAN和WAN
后端·网络协议
咖啡教室2 小时前
每日一个计算机小知识:Socket
后端·websocket