About this tool
Color by Number Generator turns any photo into a ready-to-print painting sheet — the kind you'd find in a craft store, but made from your own pictures.
How it works
Drop in any PNG, JPG, WEBP, or GIF. Your image never leaves your device — all processing happens locally in your browser.
Choose how many colors you want, cell size, sharpness, and more. The palette editor lets you swap or remove individual colors.
Export a high-resolution PNG for screens or a crisp SVG for printing. The outline sheet is ready to paint right away.
Privacy first
Your photos are processed entirely in JavaScript running in your browser tab. Nothing is uploaded, stored, or transmitted to any server. Once you close the tab the image is gone. We collect anonymous, aggregate page-view statistics (no cookies, no cross-site tracking) and serve ads only when you have given explicit cookie consent.
Who it's for
- Parents and teachers looking for personalised craft activities
- Artists who want a structured reference for painting practice
- Anyone who wants to turn a favourite photo into a keepsake gift
- Crafters exploring paint-by-number as a mindful hobby
What actually happens to your photo
A photograph is a few million pixels, almost all of them slightly different from their neighbours. A painting sheet needs the opposite: a small number of flat areas, each big enough to fill with a brush, each separated by a line you can follow. Getting from one to the other takes four steps.
First the image is reduced to a working resolution and softened slightly, which stops sensor grain from being mistaken for detail. Then the colours are clustered — the tool picks a palette that covers the image as evenly as possible, comparing colours the way the eye does rather than by raw numeric distance, so a dark navy and a dark purple stay distinct instead of collapsing into one another.
Next, every pixel is assigned to its nearest palette colour and the result is grouped into connected regions. Regions too small to paint are absorbed into their neighbours; large flat areas can optionally be broken into smaller cells so a wide sky does not become one enormous shape. Finally the borders between regions are traced, smoothed into curves, and a label is placed at the point furthest from any edge — which is why the numbers sit in the middle of a shape rather than on top of a line.
What it does not do well
It is worth being honest about the limits. Photographs with fine repeating texture — grass, fur, foliage, a knitted jumper — have no natural flat areas, so the tool either produces hundreds of unpaintably small regions or smooths the texture away entirely. Backlit shots where the subject is nearly a silhouette lose their interior detail, because there genuinely is not much there to separate.
Very low-resolution images are the other common disappointment. Below roughly 800 pixels on the longest side there is not enough information to find clean edges, and the output tends to look blocky no matter how the settings are adjusted. Upscaling a small image before uploading does not help — the detail is not recoverable, only invented.
A single clear subject in even light is what the tool is built for, and it is worth choosing a photo with that in mind rather than fighting the settings afterwards. The FAQ covers what to change when a specific image is not cooperating.
Who makes this
The site is built and run by Yvgeny Konrad, who wrote the conversion pipeline and the guides on the blog. Builds and maintains the generator, and writes the guides from using it — every screenshot on this site is the tool's real output. There is no team and no company behind it — questions and bug reports go straight to the person who can fix them, via the contact page.