ColoringZap

Free Coloring Page Generator

Yes — this one is free, and the reason it can be is structural: it runs on your own device, so there is nothing to meter. No account, no credit balance, no watermark, no daily cap, and no upload. Four generators come with it: the photo-to-outline generator, the color by number maker, the name page maker, and the book maker that folds a whole stack into one PDF. Below: why "free" usually arrives with a quota, and the measured anatomy of a generated sheet — how many blocks a photo actually turns into, how big those blocks are on paper, and which slider moves which number.

The short answer

QuestionAnswer
Is it actually free?Yes. No sign-up, no credits, no watermark, no daily limit, no paid tier.
Do my photos get uploaded?No. The page's own code contains zero network calls, and the conversion happens in your tab.
How many generators are included?Four — outline pages, color by number, name pages, and a multi-page book maker.
What does the whole thing weigh?Measured: 128 KB of HTML across all four tools, about a third of one 12-megapixel phone JPEG.
How long does one page take?Measured: 124 ms for an outline page at the 1400-pixel cap; 249 ms median for a color-by-number sheet.
How many blocks does a photo make?Measured: 38 numbered blocks at default settings, from 10 colors, on a 4:3 test photo.
Is the output repeatable?Yes. Five runs of the same photo at the same settings produced a byte-identical result every time.
Can I use it with the internet off?Yes, once the page has loaded. There is no server in the loop at any point.

Open the generator, drop a photo in, and it converts on the spot. If you want the numbered version instead, use Color by Number.

Why "free" usually arrives with a quota, and why it does not here

A generator that runs on somebody else's graphics card costs its operator a fixed amount every time you press the button. That cost is real and recurring, so it gets metered somehow — a free tier with a daily allowance, credits that run out, a queue at busy hours, a watermark on the free output, or an account created so the meter has something to attach to. None of that is a moral failing; it is just what a per-image marginal cost forces you to build.

A generator that runs in your browser has no such cost. The work is done by a processor you already own, so the hundredth page costs exactly what the first one did: nothing, to anybody. That is the whole reason this site is free with no asterisk — not generosity, arithmetic. The trade-off is that the work is bounded by your device rather than a data centre, so it is worth knowing what that work actually costs. Measured below.

The second consequence is the one that matters more in practice. A server-side generator has to receive your image before it can process it. If the photo is of your own child, a classroom, or a client's event, that transfer is the part you have to think about — accounts, terms of service, retention, where the servers are. An on-device generator never has that step, so the question does not arise. You can verify it: search any page of this site for fetch(, XMLHttpRequest, FormData or WebSocket and you will find zero matches.

Measured: what a generated sheet is actually made of

The numbers below come from running this site's own color-by-number code — copied out of the page unmodified — in Node, on an 800 × 600 test photo. The tool resizes any image to 560 pixels wide before it starts, so the working frame is 560 × 420: that is the grid every block count below refers to. Millimetres assume the finished art is printed so it fills the 187.7 mm image area of a US Letter page at the 14.11 mm margins the book maker uses, which works out to 2.98 pixels per millimetre. Unless a row says otherwise, the sliders sit at their defaults: 10 colors, smoothing 2, block cleanup 2.

Block cleanup is the dial that sets how fiddly the sheet is

Block cleanup sets a minimum block size. Anything smaller gets merged into whichever neighbour it shares the longest border with. The merge thresholds are hard-coded as 8, 25, 60, 130 and 260 pixels, scaled by the size of the working frame — and because the reference frame in that formula is exactly 560 × 420, a 4:3 photo gets those numbers unchanged.

Block cleanupMerge thresholdBlocks after mergingBlocks that get a numberMedian blockSmallest block
08 px60533.7 mm0.95 mm
125 px43435.1 mm1.7 mm
2 (default)60 px38387.6 mm2.6 mm
3130 px272711.8 mm4.2 mm
4260 px191925.1 mm8.9 mm

Read that as an age dial, not a quality dial. At cleanup 0 the median block is 3.7 mm across and the smallest is under a millimetre — that is a sheet for steady hands and fine pens, and it is genuinely tedious for anyone under about ten. At cleanup 4 the median block is 25 mm and the smallest is 8.9 mm, which is a sheet a five-year-old can finish in one sitting. The default sits in the middle at 7.6 mm.

One detail worth knowing: at cleanup 0, seven of the sixty blocks came out with no number on them. That is not a bug — there is a numbering floor of max(8, round(width × height ÷ 24000)) pixels, which is 10 pixels at this frame, and a block smaller than that is drawn but left blank because a digit will not fit inside it. Every setting from cleanup 1 upward numbered every block. So if your sheet has mystery unnumbered blobs, raise Block cleanup one step and they will either be absorbed into a neighbour or grow past the floor.

Number of colors is the dial that changes the character of the sheet

ColorsBlocksLargest block, share of pageMedian block
41944.6%8.3 mm
62525.9%8.5 mm
83123.2%7.6 mm
10 (default)3815.6%7.6 mm
124912.3%7.4 mm
16617.1%9.2 mm

The block count scales almost perfectly linearly with the color count — roughly 3.8 blocks per color across the whole range — so this slider is a straightforward "how much work is this sheet" control. The more interesting column is the largest block. At four colors, a single block covers 44.6% of the page: nearly half the sheet is one number, which is boring to colour and looks like a mistake. By sixteen colors the largest block is down to 7.1% and the sheet reads as a picture again. If a four-color sheet disappointed you, that is why.

Note also that blocks outnumber colors by nearly four to one. Thirty-eight blocks share ten numbers, so each number appears several times across the sheet — the colour key is ten entries long no matter how many blocks there are.

Smoothing removes noise, not detail

SmoothingBlocks before mergingBlocks after merging
054728
141135
2 (default)14938
311439
410138

This is the one slider that does what people assume the others do. Turning smoothing off does not give you more blocks — it gives you 547 raw fragments that then collapse down to 28 after merging, fewer than the 38 you get at the default. What smoothing is really doing is stopping the image from shattering into speckle before the merge ever runs: 547 fragments down to 101, a factor of five, with the finished block count essentially unchanged. Turn it up when a grainy or low-light photo produces a sheet that looks like static. Leave it alone otherwise, because past 2 it only costs time.

What each slider costs in time

Median of five runs per row, same photo, in Node on one machine. Treat these as relative costs rather than stopwatch promises — your browser and your hardware will differ, but the ranking will not:

SettingMedian time
Block cleanup 095 ms
Block cleanup 2 (default)249 ms
Block cleanup 4391 ms
4 colors237 ms
16 colors265 ms
Smoothing 0222 ms
Smoothing 4253 ms

Block cleanup is the expensive one — 95 ms to 391 ms across its range — because merging is done in passes over the whole image. Color count is almost free: four times as many colors costs 28 ms more. So if a sheet is slow on an old tablet, lower Block cleanup before you touch anything else. And because the pipeline is deterministic, none of this is a reason to keep a copy around: the same photo and the same sliders regenerate a byte-identical sheet, which we confirmed by running it five times and getting one unique output.

What you are printing

The color-by-number sheet exports as a PNG: the 560 × 420 art with a 200-pixel colour key laid beside it, which comes to 808 × 452 pixels at ten colors. Printed so the art fills that 187.7 mm image area, the art lands at 2.98 pixels per millimetre, or about 76 DPI. That number would be alarming for a photograph and is completely fine here — a paint-by-number sheet has no hairlines, no gradients and no text below about 2.3 mm, so there is nothing for low resolution to destroy. The digits are drawn between 7 and 15 pixels depending on the size of the block they sit in: 2.35 mm to 5.03 mm tall on paper. The 7-pixel floor exists precisely because of this print scale.

The outline generator works at a different resolution — it caps the long side at 1400 pixels — and the book maker lays pages out at fixed US Letter geometry with a 14.11 mm margin on all four sides. If you want the page geometry spelled out, it is on Coloring Page Generator.

Four generators, one folder of photos

All four take the same input and all four run on your device. They differ in what they hand back:

Together they are 128 KB of HTML. That is the whole product — there is no model download, no plugin, no app. It is worth putting next to the alternative: a tool that has to receive your image needs servers, servers need accounts, and accounts need quotas.

How to get a good one

  1. Start with a photo that has edges. A clear subject against a plain background converts cleanly. Flat artwork and clean portraits are the easy cases; a dim group shot in a cluttered room is the hard one.
  2. Open the generator and drop the photo in. It converts immediately at the default settings.
  3. Pick the shape first, tune second. Outline page, or numbered blocks? That choice matters more than any slider.
  4. For a color-by-number sheet, set the age with Block cleanup — 1 or 2 for older children and adults, 3 or 4 for small hands. Then set Number of colors to control how much work the sheet is, staying above 6 if you want it to look like the photo rather than like a flag.
  5. Only raise Smoothing for grainy photos. On a clean picture it costs 30 ms and changes almost nothing.
  6. Check the preview at 100%, not zoomed out. A block that looks substantial at 40% zoom can be 2 mm on paper.

If the outlines are the part you are fighting with rather than the blocks, the settings work differently there — Turn Photo Into Line Drawing covers those sliders, and Convert a Picture Into a Drawing is a first-time walkthrough.

Questions

Is there really no catch? No paid tier, no watermark, no daily cap, no account. The only cost is your device's processor, and it is measured above: a quarter of a second for a numbered sheet, an eighth of a second for an outline page.

How many pages can I make? As many as you want. There is no counter anywhere in the code.

Do I need an internet connection? Only to load the page the first time. After that it works offline, because nothing in the conversion involves a server.

Where do my photos go? Nowhere. They are read by your browser, processed in your browser, and the result is handed to you as a file. There is no upload code path on this site.

Which of the four should I use? Outline pages for open-ended colouring; color by number when you want the result to match the photo; name pages when the output is a label; the book maker when you are printing more than a handful.

Why is my sheet mostly one big block? The color count is too low. At four colors the largest block covered 44.6% of the page in our run; at sixteen it was 7.1%.

Why are some blocks missing their number? They fell under the 10-pixel numbering floor at this frame. Raise Block cleanup one step.

Is this different from your coloring page generator page? Same tool. Coloring Page Generator is about the printed page — sizes, margins, DPI; this page is about what "free" means when the generator runs locally, and what the numbered version is made of.

What about photos of children I did not take? That is a permission question and the tool does not change it. What it removes is the extra question of where the image ends up afterwards.