photo-collage-maker

Create photo collages with grid layouts, custom arrangements, borders, and backgrounds. Combine multiple images into single compositions.

$ Installieren

git clone https://github.com/dkyazzentwatwa/chatgpt-skills /tmp/chatgpt-skills && cp -r /tmp/chatgpt-skills/photo-collage-maker ~/.claude/skills/chatgpt-skills

// tip: Run this command in your terminal to install the skill


name: photo-collage-maker description: Create photo collages with grid layouts, custom arrangements, borders, and backgrounds. Combine multiple images into single compositions.

Photo Collage Maker

Create beautiful photo collages from multiple images.

Features

  • Grid Layouts: 2x2, 3x3, custom grids
  • Custom Arrangements: Free-form positioning
  • Borders: Add spacing and frames
  • Backgrounds: Solid colors, gradients, images
  • Image Fitting: Fit, fill, stretch options
  • Text Labels: Add captions to images
  • Templates: Pre-built collage templates

Quick Start

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")

CLI Usage

# 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 Reference

CollageMaker Class

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

Templates

  • grid_2x2: Simple 2x2 grid
  • grid_3x3: 3x3 grid layout
  • magazine: Large image with smaller thumbnails
  • pinterest: Masonry-style vertical layout
  • polaroid: Images with white borders and captions
  • story: Vertical mobile-style collage

Dependencies

  • pillow>=10.0.0
  • numpy>=1.24.0