RunLocalTools

Contact Sheet & Photo Collage Maker — Free, No Uploads

Arrange a batch of photos into a contact sheet or justified photo-gallery grid for free, entirely in your browser. Captions, index numbers, custom layouts. Nothing is uploaded.

What it does

This tool takes a batch of photos and lays them out into a single downloadable sheet — either a classic uniform grid (like a photographer’s contact sheet) or a justified photo-gallery layout that preserves each photo’s own aspect ratio and packs them into neat, evenly filled rows, the way a photo-sharing site would. You control the columns, spacing, background, corner rounding, filename captions, and numbered badges, and can add a header title to the sheet itself.

How it works

Everything is drawn locally on an in-browser canvas — your photos are never uploaded. In grid mode, each photo is fit into a uniform cell either by cropping it to fill the space or by fitting the whole photo inside with letterboxing, your choice. In justified mode, the tool uses the same row-packing approach behind justified photo galleries: it fills each row to a target width by scaling photos to a common height, then rescales that row very slightly so it lines up exactly with every other row’s edges, rather than leaving a ragged gap at the end of each line. If your batch is too tall to fit on one sheet at your chosen settings, it’s automatically split into multiple sheets and delivered together as a zip.

How to use it

  1. Add your photos — drag and drop a whole folder’s worth at once if you like.
  2. Reorder them with the up/down arrows, or remove any you don’t want.
  3. Pick Grid or Justified rows, and adjust columns (or row height for justified), spacing, and background color.
  4. Turn on filename captions or numbered badges if you want them.
  5. Optionally add a header title, then build — a single sheet opens for preview and download in your choice of format; multiple sheets download together as a zip.

FAQ

What’s the difference between Grid and Justified layout? Grid gives every photo the same-size cell, cropping or letterboxing as needed — the classic contact-sheet look. Justified keeps each photo’s natural proportions and packs them into rows that all line up to the same width, which tends to look better for photos with very different shapes (a mix of portrait and landscape shots, for example).

What happens if my batch is too large for one sheet? The sheet is automatically split into multiple images sized to fit, and all of them download together in a single zip file rather than you having to build several sheets by hand.

Can I crop photos to fill each cell instead of showing the whole photo? Yes — “Cover” crops each photo to fill its cell exactly; “Contain” shows the whole photo with a background border filling any leftover space. Both are available in Grid mode.

Will my photos still be there if I accidentally refresh the page? Yes — added photos are kept in your browser until you remove them or use “Clear all,” so a refresh won’t lose your work in progress.

Does it work with a mix of portrait and landscape photos? Yes, in both layouts — Justified mode is specifically built to handle mixed aspect ratios gracefully, and Grid mode’s Cover/Contain options both handle mismatched shapes cleanly too.

Is there a limit to how many photos I can use? No hard limit — very large batches just take a little longer to lay out and may span more sheets.

Before or after you build a sheet

If your photos are different sizes and you want them uniform before building a grid, the bulk image resizer or square-crop tool can standardize them first. Need to crop a batch to a specific shape beforehand? The crop tool handles that. And once your sheet is built, adding a watermark with the image watermarking tool is a natural next step before sharing it with a client.