Photo Mosaic Generator
NEW!

Photo Mosaic Generator

Build a photo mosaic in your browser: one big picture rebuilt from hundreds of your own smaller photos, with tint, variety and print-size export.

Photo to Art

1. Upload your photo

This is the image the mosaic will recreate

JPG, PNG or WebP β€” everything is processed in your browser

Or try an example:

All processing happens locally in your browser. Your photos never leave your device.

Keywords

photo mosaic generatorpicture made of picturesmake a mosaic from photosphoto collage mosaic makerfree photo mosaic onlinemosaic from my own photos

Need something else?

How to use

1

Upload the photo you want the mosaic to recreate. This is the big picture people will see from across the room, and it never leaves your browser.

2

Set how many tiles go across the width. More tiles across means a finer, more photographic result but smaller individual pictures.

3

Add your tile photos β€” select a batch of files or a whole folder at once. The more photos you add, and the more varied they are, the better the mosaic matches.

4

Adjust tint strength, variety and smooth blending until the preview reads well both close up and at arm's length.

5

Choose an export size in exact pixels or by paper size and DPI, then download the finished mosaic as a PNG.

Features

Matches layout, not just average color

Every photo is reduced to a 4Γ—4 grid of average colors instead of a single average, so a tile that is bright on top and dark at the bottom lands in a cell with that same distribution. The mosaic stays readable when you walk right up to it.

Bulk tile upload from a folder

Pick hundreds of photos in one go, or point the tool at an entire folder. Tiles are decoded and reduced to a compact color signature as they load, with a live progress count and a tally of anything that could not be read.

Tint, variety and dithering controls

Tint blends each placed photo toward the color of the cell it fills, variety pushes repeats apart so the same picture does not clump, and optional dithering spreads color error into neighboring cells so even a small tile set can cover a large grid.

Print-ready export sizing

Download by exact pixel width or by paper size and DPI β€” A4, A3, A5, US Letter or US Legal at 96 to 600 DPI β€” with every request clamped to a safe rendering ceiling so a large mosaic never fails silently.

Full-resolution tiles on export

The export is not an upscaled screenshot of the preview. Whenever the export cell is larger than the working thumbnail the tool keeps in memory, each placed tile is re-drawn from its original photo at the final cell size, so the individual pictures stay genuinely sharp in the downloaded file.

Why Choose This Tool?

Your photos never leave your browser

A photo mosaic is usually built from the most personal pictures you own β€” a wedding album, a decade of family snapshots, a pet that is no longer around. Every one of those files is decoded, matched and drawn on your own device. Nothing is uploaded, nothing is stored, and no account is required, so there is no server copy of your album to worry about.

Matching that respects the picture, not just the color

Many mosaic makers reduce each photo to one average color, which produces a grid of flat color patches that only works from a distance. Comparing a 4Γ—4 grid of colors in CIELAB keeps the internal layout of each photo in play, so tiles are chosen for how their light and dark areas fall as well as for their hue.

Honest controls instead of a magic button

Tint, variety and dithering each do one understandable thing, and the preview updates as you move them. You can see exactly what you are trading away β€” a higher tint makes the big picture read better but washes out the small photos β€” rather than guessing at a single quality slider.

Built for printing, not just for sharing

A mosaic is worth printing large, so the export panel targets the sheet you will actually use at the density your printer needs, and re-derives each placed tile from its original file whenever the export cell is bigger than the working thumbnail. What you download is sized for a frame, not for a thumbnail.

How a Photo Mosaic Is Actually Built

One picture made of many pictures

A photo mosaic is a single large image reconstructed from hundreds or thousands of smaller photographs. Seen from across a room it reads as the original portrait or landscape; seen from arm's length it dissolves into the individual pictures it is made of. That double reading is the whole appeal, and getting both halves right is a matching problem: for every small area of the target image, which of your photos belongs there?

Slicing the target into a grid

The generator first divides the target photo into a grid. You choose how many tiles go across the width; the number of rows is derived from the target's own aspect ratio, so nothing is stretched or letterboxed. The total cell count is capped so a very tall photo at a very fine setting cannot lock up your browser. Each cell is then a small rectangle of the original picture that needs a photo standing in for it.

The 4Γ—4 color signature

Every image involved β€” each cell of the target and each tile photo you upload β€” is reduced to the same compact description: a 4Γ—4 grid of average colors, each converted to CIELAB. That is sixteen cells of three numbers, forty-eight values per image. CIELAB is used because distances in it correspond reasonably well to how different two colors look to a human eye, which plain RGB distance does not. Matching is then nearest-neighbour search: for each target cell, find the tile photo whose signature is closest.

Keeping the grid instead of collapsing each photo to a single average color is the point of the whole design. An average tells you a photo is roughly mid-blue; it cannot tell you whether that photo is a bright sky above a dark sea or an evenly blue wall. Those two pictures look nothing alike in place. Because the signature preserves where the light and dark parts of a photo fall, a tile whose top-left is bright will be chosen for a cell whose top-left is bright, and the internal structure of each small photo lines up with the structure of the region it is filling. That is what makes a mosaic hold together up close and not only from a distance.

Repeats and the proximity penalty

Unless you upload as many photos as there are cells, tiles must repeat β€” that is normal and expected, not a defect. What ruins a mosaic is not repetition but clumping: the same picture appearing three times in a row across a patch of sky. The generator therefore adds a proximity penalty during matching, so a tile that has recently been used nearby becomes a worse candidate than its raw color distance alone would suggest. The variety control sets how strong that penalty is. Low variety takes the closest match every time and accepts clusters; high variety spreads repeats out across the canvas at the cost of slightly looser color matches. The penalty is bounded, so even at maximum variety the tile that gets placed is never wildly wrong for its cell.

Tinting toward the target

Even with a large photo library, no tile is an exact match for its cell. Each placed photo is therefore blended toward the average color of the cell it fills by an adjustable amount. At 0% tint the photos are left completely untouched β€” the small pictures are perfectly visible, but the big picture may only be readable from a distance. At 100% the target image reproduces almost perfectly while the individual photos fade into flat color. Everything interesting is in between, and the right value depends mostly on how many photos you have: a large, varied library needs very little tint, while a couple of dozen photos across a thousand cells will need a lot.

Dithering: how twenty photos cover a thousand cells

When your tile set cannot cover the range of colors in the target, whole regions get the same slightly-wrong photo and the mosaic bands into flat patches. Optional Floyd–Steinberg error diffusion fixes this the same way it lets an eight-color pixel-art image still read correctly: the difference between what a cell wanted and what its chosen tile actually provides is pushed into the neighbouring cells that have not been filled yet. Those neighbours then compensate in the opposite direction, and the eye averages the alternation into the intended color. It is the single most effective setting when you have far fewer photos than cells.

Exporting at print resolution

The preview is deliberately small so it can re-render while you move a slider. The download is not derived from it. Each tile photo is held in memory as a 160-pixel working thumbnail, which is all the preview can show. When you export, any tile whose final cell is larger than that thumbnail is re-drawn from its original uploaded photo at the true cell size β€” one photo at a time, released again before the next, so a big export never has to hold the whole album at full size at once. Below 160 pixels per cell the stored thumbnail already carries more detail than the cell can display and nothing is re-decoded. Either way the small pictures are genuinely sharp rather than an enlargement of preview pixels. You can specify the output either as an exact pixel width or as a paper size plus DPI, and the result is clamped to a safe rendering ceiling β€” 10,000 pixels on the long side and 30 megapixels of total area β€” because a canvas beyond that returns blank on many devices, particularly mobile. That ceiling is real and it is the honest limit of the tool: a poster-sized mosaic at 300 DPI is within reach, a billboard is not.

Getting a good result

Mosaic quality depends far more on your photo library than on any setting here. Aim for at least a few hundred varied images, and vary them in brightness above all β€” a folder of a thousand photos all shot in the same evening light gives the matcher almost nothing to work with, while two hundred pictures spanning bright beaches and dark interiors will cover the target's tonal range. For the target image itself, pick something with a strong, simple silhouette: a face, a pet, a logo, a skyline. Fine text and delicate detail will not survive being rebuilt out of photographs at any grid size. If you want another way to reinterpret the same photo, our pixel art generator uses the same dithering idea with a fixed palette instead of a photo library.

Frequently Asked Questions

Are my photos uploaded anywhere?

No. The target image and every tile photo are read, analysed, matched and drawn entirely inside your browser using the Canvas API. No file is sent to a server, nothing is stored after you close the tab, and no account is needed. That matters here more than on most tools, because a photo mosaic is usually built from a personal album.

How many photos do I need for a good mosaic?

More than you probably expect. A few hundred varied photos give a genuinely good result; a thousand or more is better still. What matters most is variety of brightness and color β€” a large library shot entirely in the same lighting is worth less than a smaller one that spans bright and dark, warm and cool. Quality depends far more on your photo set than on any control in the tool. There is an upper bound: the tool keeps up to 3,000 tile photos, and if you point it at a bigger folder it says exactly how many of your files it added rather than quietly ignoring the rest. Three thousand is well past the point of diminishing returns β€” the mosaic grid itself is capped at 20,000 cells.

What happens if I have fewer photos than there are cells?

Tiles simply repeat, which is normal β€” a 40Γ—30 grid has 1,200 cells and almost nobody has 1,200 suitable photos. The tool tells you the most times any one tile can be needed β€” cells divided by photos, rounded up β€” as soon as your photos load. With a small set, raise the tint so the mosaic still reads, turn on smooth blending so colors do not band, and raise variety so repeats do not sit next to each other.

Why does the same photo appear several times?

Because there are more cells than photos, and because some of your photos are simply the best available match for a whole area of the target β€” a run of sky will keep asking for the same blue picture. The variety control adds a penalty for reusing a tile close to where it was just used, which spreads repeats around the canvas. It cannot eliminate them; only adding more photos can do that.

What does the tint slider actually do?

It blends each placed photo toward the average color of the cell it fills. At 0% the photos are untouched and completely recognisable, but the overall picture may only appear from a distance. At 100% the target reproduces almost perfectly while the individual photos nearly vanish into flat color. Most people land somewhere in the middle; the fewer photos you have, the more tint you will need.

What is smooth blending (dithering) for?

It is Floyd–Steinberg error diffusion. When a chosen tile is not quite the right color for its cell, the leftover difference is spread into neighbouring cells, which then compensate in the other direction so the eye averages out to the intended color. It is the difference between a small photo set producing flat, banded patches and producing a mosaic that still looks smooth.

Why is there a maximum export size?

Browsers cannot allocate an unlimited drawing canvas, and past a certain size β€” especially on phones and tablets β€” a canvas silently returns a blank image instead of failing. Exports are therefore clamped to 10,000 pixels on the longest side and 30 megapixels in total. If you request more, the tool quietly scales down to the largest safe size and tells you it did, rather than handing you an empty file.

How do I size a mosaic for printing?

Switch the download panel to print mode, pick the sheet you will print on (A4, A3, A5, US Letter or US Legal) and a DPI. For a mosaic meant to be viewed on a wall, 150 DPI is usually plenty, since the whole point is that individual tiles are small; choose 300 DPI if people will inspect it closely. Very large sheets at 600 DPI will hit the export ceiling and be scaled down automatically.

Will the small photos be sharp in the downloaded file?

Yes. The export does not enlarge the on-screen preview. Each tile photo is kept as a 160-pixel working thumbnail, and whenever the export's cell size is larger than that, the tile is re-drawn from your original file at the true cell size β€” one photo at a time, so a big export never holds your whole album at full size at once. When a cell works out smaller than 160 pixels the stored thumbnail is already more detailed than the cell can show, so nothing is re-decoded. Either way what you download is genuinely detailed rather than a blown-up approximation, which is why a large export takes a few seconds and shows a progress readout.

What kind of target image works best?

Something with a strong, simple structure: a portrait, a pet, a logo, a silhouette against a clear sky. The mosaic reconstructs the target out of blocks of photographs, so anything that depends on fine detail β€” small text, thin lines, delicate patterns β€” will be lost no matter how many tiles you use. Crop tight to your subject before you start.

How many tiles across should I choose?

More tiles across gives a more faithful big picture but smaller individual photos. For a printed poster people will walk up to, something in the 40–60 range across usually balances both readings. For a screen image, fewer tiles keep the small photos recognisable. The tool shows the resulting columns, rows and total tile count as you adjust it, and caps the total so the browser stays responsive.

Can I use the same photo set for more than one mosaic?

Yes. Use the Change photo button at the top of the workspace: it replaces the target image and re-matches everything against the tile photos already loaded, keeping the whole album in place. It is a fast way to try the same photos against several different portraits, or to compare a tight crop against a wider one before committing to a print. Start Over is the other button β€” that one clears the tiles as well and returns you to an empty tool.

Related Articles

Learn more