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 小时前
Crypto、Cipher与Password:Java加密开发的三个核心概念
java·开发语言·python
测试秃头怪2 小时前
如何评估自动化测试脚本的编写时间和维护工作量?
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
姚青&2 小时前
测试左移体系
python·自动化
技术民工之路2 小时前
Python Socket编程零基础实战教程(TCP/UDP通信完整版)
python·tcp/ip·udp
戮漠summer3 小时前
Missing Semester 计算机教育中缺失的一课 Lecture 01 Shell
开发语言·后端·scala
EW Frontier3 小时前
三级跳突破864维动作空间——QMIX-Hierarchical多无人机协同通信方法全解析【附python代码】
开发语言·python·无人机·强化学习·通信资源分配
中微极客4 小时前
TensorFlow模型量化实战:从精度到延迟的优化指南
人工智能·python·tensorflow
IT_陈寒4 小时前
Redis的KEYS命令把我搞崩溃了,改用SCAN才活过来
前端·人工智能·后端
长不胖的路人甲5 小时前
SpringCloud 服务雪崩、熔断、降级
后端·spring·spring cloud