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 工具、公众号等
相关推荐
晔子yy1 分钟前
【AI编程时代】:RAG的不同检索策略
python·ai编程
木易 士心3 分钟前
自然语言转数据库操作语句原理架构图分析和实现
数据库·后端
无心水4 分钟前
Python时间处理通关指南:datetime/arrow/pandas实战
开发语言·人工智能·python·pandas·datetime·arrow·金融科技
jgbazsh5 分钟前
Spring中把一个bean对象交给Spring容器管理的三种方式
java·后端·spring
AI视觉网奇7 分钟前
block_sparse_attn 安装
python
墨白曦煜12 分钟前
RocketMQ 实战:揭秘 @RocketMQMessageListener 的反序列化魔法与“万能”消费策略
开发语言·python·rocketmq
华仔啊17 分钟前
前端不懂 Java?后端怕 CSS?这套AI全栈方案专治各种偏科
java·前端·后端
木易 士心17 分钟前
Node.js 后端开发全解析:从核心原理架构到实战应用
后端·架构·node.js
皮卡丘不断更18 分钟前
我把传统项目问答升级成了 Agent-RAG:Spring Boot + FastAPI + ChromaDB 工程落地实践
人工智能·spring boot·后端·架构·python3.11
ZTLJQ8 小时前
序列化的艺术:Python JSON处理完全解析
开发语言·python·json