# Photo Collage Maker

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

- Skill: `majiayu000/photo-collage-maker` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/photo-collage-maker`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/photo-collage-maker/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/photo-collage-maker

---


# 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

```python
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

```bash
# 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

```python
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

