Contact Sheet / Image Grid Maker
Arrange a batch of images into one grid, in any order — add more anytime, sort by name/date/size, or drag rows to reorder.
Select one or more images — do this again any time to add more, even from a different folder.
Drag a row to reorder, use the ▲▼ buttons, or click a sort button above (click again to reverse).
About this tool
Arranges a batch of images into a single grid image — a "contact sheet" — with as many columns as you choose, each photo cropped to fit its cell. Handy for a quick visual overview of a folder of photos, a mood board, a set of product shots, or a simple image collage. Everything runs locally in your browser using the canvas element — nothing is uploaded anywhere.
Building the set. Choosing images doesn't have to happen in one go — select a batch, then open the file picker again (even for a different folder) and the new images are added to the list rather than replacing it, so a sheet can mix photos from wherever they're stored. Each image in the list shows a thumbnail and filename with a ✕ to drop one you don't want.
Controlling the order. Images fill the grid left-to-right, top-to-bottom in the order they're listed. Reorder that list by dragging a row, with the ▲/▼ buttons, or with a sort button — by filename, by the file's last-modified date, or by file size — click the same sort button again to reverse it. Sorting and dragging both only touch the order; nothing is re-cropped or re-loaded.
Choosing columns and cell size. More columns fits more images per row at the cost of each one being smaller and more tightly cropped; a taller cell size shows more detail per photo but produces a larger final image. There's no single right answer — a 3–4 column grid with a large cell size reads well as a portfolio-style overview, while 6–8 narrow columns fit more thumbnails into a quick reference sheet.
Common uses: a visual index of a photo folder before choosing which to edit or delete, a simple product or portfolio grid, a mood board, comparing several image variants side by side, or a printable proof sheet — the traditional darkroom "contact sheet" this tool is named after, where every negative in a roll got printed small on one page for review.
To find and remove actual duplicate or near-duplicate photos before building a sheet, use the duplicate image finder. To shrink the originals first, the image compressor; for the same grid-of-frames idea applied to a single video instead of separate photos, the video sprite sheet generator.
Frequently asked questions
- How does an image get fit into its cell if the proportions don't match?
- Each image is scaled and center-cropped to fill its square cell completely (the same "cover" behavior as CSS
object-fit: cover) — no letterboxing or distortion, but the edges of a very wide or very tall photo may be trimmed off. - Can I add images from more than one folder?
- Yes — select a batch, then open "Add images" again and pick more, from the same folder or a different one. Every selection adds to the existing list instead of replacing it.
- Can I control the order the images appear in?
- Yes. Drag any row in the list to move it, use its ▲/▼ buttons, or click "Name," "Date modified," or "File size" to sort the whole list at once — clicking the same sort button again reverses it. The grid always reflects whatever order the list is in.
- What does "Date modified" sort by, exactly?
- The file's last-modified timestamp as your operating system reports it — the same value shown in your file manager's "Date modified" column. It's read from the file itself, not from anything in the image content.
- Can I remove one image without starting over?
- Yes — each row in the list has its own ✕ button. "Clear all" is there separately for when you actually do want to start over.
- Is any image uploaded anywhere?
- No — every image stays on your device; loading, thumbnails, sorting, and the finished grid are all done locally in your browser, and nothing is ever sent to a server.