photo-collage-maker

dkyazzentwatwa's avatarfrom dkyazzentwatwa

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

⭐1stars🔀0forks📁View on GitHub🕐Updated Dec 17, 2025

When & Why to Use This Skill

The Photo Collage Maker is a versatile Claude skill designed to automate the creation of professional-grade image compositions. It enables users to programmatically combine multiple images into structured grid layouts or custom arrangements with full control over borders, backgrounds, and templates. By streamlining the visual assembly process, it serves as a powerful asset for developers and creators looking to scale their visual content production.

Use Cases

  • Social Media Automation: Automatically generate Pinterest-style masonry layouts or Instagram-ready story collages from a batch of images.
  • E-commerce Product Showcases: Create consistent 2x2 or 3x3 product grids for online storefronts or marketing newsletters.
  • Digital Publishing: Use the 'magazine' or 'polaroid' templates to quickly assemble aesthetic layouts for blog posts and digital articles.
  • Automated Reporting: Combine multiple technical diagrams or site inspection photos into a single, organized summary image for documentation.
namephoto-collage-maker
descriptionCreate 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