mcpField
P
photo-collage-maker

photo-collage-maker

github.com/dkyazzentwatwa创意与媒体12469 次安装29 周前更新
代码仓库

关于 photo-collage-maker

photo-collage-maker 是一款用多张图片制作拼贴的 Python 工具,适合需要组合照片的人使用。它支持网格与自由布局,并可通过模板、背景和图片适配选项调整成品。

主要功能

  1. 01网格与自定义布局
  2. 02自由摆放图片
  3. 03边框与背景设置
  4. 04适配、填充与拉伸
  5. 05添加说明文字和模板

适用场景

  1. 01制作 2×2 或 3×3 照片网格
  2. 02排布杂志风格的图片
  3. 03为照片添加说明和边框

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dkyazzentwatwa/chatgpt-skills --skill photo-collage-maker

安装后在 Claude Code 中输入/photo-collage-maker确认已加载。

附带文件scripts/collage_maker.pyscripts/requirements.txt

详细介绍

照片拼贴制作工具

使用多张图片制作精美的照片拼贴。

功能

  • 网格布局:2x2、3x3、自定义网格
  • 自定义排列:自由定位
  • 边框:添加间距和边框
  • 背景:纯色、渐变、图片
  • 图片适配:适配、填充、拉伸选项
  • 文字标签:为图片添加说明文字
  • 模板:预设拼贴模板

快速开始

from collage_maker import CollageMaker

collage = CollageMaker()

# Simple 2x2 grid
collage.grid(2, 2, gap=10)
collage.add_images(["photo1.jpg", "photo2.jpg", "photo3.jpg", "photo4.jpg"])
collage.save("collage.jpg")

# Custom layout
collage.canvas(1200, 800)
collage.add_image("main.jpg", x=0, y=0, width=800, height=800)
collage.add_image("side1.jpg", x=800, y=0, width=400, height=400)
collage.add_image("side2.jpg", x=800, y=400, width=400, height=400)
collage.save("custom_collage.jpg")

命令行用法

# 2x2 grid collage
python collage_maker.py --grid 2x2 --images img1.jpg img2.jpg img3.jpg img4.jpg -o collage.jpg

# 3x3 grid with gap
python collage_maker.py --grid 3x3 --gap 10 --images photos/*.jpg -o grid.jpg

# With background color
python collage_maker.py --grid 2x3 --bg-color "255,255,255" --images *.jpg -o collage.jpg

# Template layout
python collage_maker.py --template magazine --images *.jpg -o magazine.jpg

API 参考

CollageMaker 类
class CollageMaker:
    def __init__(self)

    # Canvas Setup
    def canvas(self, width: int, height: int, bg_color: Tuple = (255,255,255)) -> 'CollageMaker'
    def grid(self, rows: int, cols: int, gap: int = 0) -> 'CollageMaker'
    def template(self, name: str) -> 'CollageMaker'

    # Adding Images
    def add_images(self, image_paths: List[str], fit: str = "fill") -> 'CollageMaker'
    def add_image(self, path: str, x: int, y: int, width: int, height: int,
                 fit: str = "fill") -> 'CollageMaker'

    # Styling
    def set_background(self, color: Tuple = None, image: str = None) -> 'CollageMaker'
    def set_border(self, width: int, color: Tuple = (255,255,255)) -> 'CollageMaker'
    def set_gap(self, gap: int) -> 'CollageMaker'
    def rounded_corners(self, radius: int) -> 'CollageMaker'

    # Text
    def add_text(self, text: str, x: int, y: int, font_size: int = 24,
                color: Tuple = (0,0,0)) -> 'CollageMaker'

    # Output
    def save(self, filepath: str, quality: int = 95) -> str
    def get_image(self) -> Image

模板

  • grid_2x2:简单的 2x2 网格
  • grid_3x3:3x3 网格布局
  • magazine:大图搭配较小的缩略图
  • pinterest:瀑布流式垂直布局
  • polaroid:带白色边框和说明文字的图片
  • story:竖屏移动端风格拼贴

依赖项

  • pillow>=10.0.0
  • numpy>=1.24.0

评论

支持 Markdown