Agent skill
photo-collage-maker
Create photo collages with grid layouts, custom arrangements, borders, and backgrounds. Combine multiple images into single compositions.
Stars
163
Forks
31
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/development/photo-collage-maker
SKILL.md
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
Didn't find tool you were looking for?