Duotone Image Generator
Restyle any photo as a two-colour duotone, choosing shadow and highlight colours and adjusting contrast — processed in your browser.
Everything runs in your browser — the image never leaves your device.
At minimum contrast the photograph becomes one flat colour
Not a low-contrast version of itself — a single rectangle of colour. The effect builds a 256-entry table mapping each brightness level to a colour between the two you picked, and contrast is applied by stretching each level away from the midpoint first:
t = (t − 0.5) × (1 + contrast × 2) + 0.5
The slider runs -50 to 50, so that multiplier runs from 0 to 2. At exactly -50 it is zero, every level collapses to the midpoint, and all 256 entries become the same colour:
| Contrast | Distinct tones of 256 | Flat at the dark end | At the light end |
|---|---|---|---|
| -50 | 1 | 256 | 256 |
| -25 | 157 | 3 | 1 |
| 0 | 237 | 1 | 1 |
| 25 | 172 | 43 | 43 |
| 50 | 128 | 65 | 65 |
The other end is less dramatic and far more common. At 50 the multiplier is 2, so a quarter of the range is crushed against each endpoint: 130 of the 256 brightness levels — over half the tonal range — become one of exactly two colours. That is usually what people are reaching for, and it is worth knowing it is a hard clip rather than a curve.
The two colours decide how much of the picture survives
A duotone maps brightness onto a line between two colours, so the tonal range of the result is the distance between them and nothing else. What the original image contained is irrelevant:
| Pair | Output luminance | Range | Endpoint contrast |
|---|---|---|---|
| black to white | 0.000 to 1.000 | 1.000 | 21.00:1 |
| the default pair | 0.024 to 0.438 | 0.415 | 6.64:1 |
| two mid tones | 0.040 to 0.125 | 0.085 | 1.94:1 |
| red to blue | 0.053 to 0.027 | -0.025 (inverted) | 1.33:1 |
Two colours that look very different can be nearly identical in brightness, and a duotone built from them produces something close to a flat panel with a faint pattern in it. The check that matters is not whether the swatches contrast with each other — it is whether their luminances differ. A deep red and a deep blue sit far apart in the colour picker and less than 0.03 apart in brightness.
Past that comes inversion. Choose a light-looking colour for the dark end and a darker one for the light end and the mapping runs backwards: shadows come out brighter than highlights and the picture reads as a negative. Nothing stops you, and the two swatches give no warning that it is about to happen.
One consequence of the lookup table worth stating plainly: whatever you feed in, the output holds at most 256 distinct colours, from a possible 16,777,216. A duotone is a decision to throw away every hue in the photograph and keep only its brightness.
How to use
- Choose an image with clear tonal range.
- Pick a dark colour for shadows and a light one for highlights.
- Adjust the contrast until the midtones read well.
- Download the result.
Frequently asked questions
What is a duotone?
An image rendered in two colours rather than full colour, mapping the original's tonal range onto a gradient between them. It began as a printing technique for adding depth to a black-and-white photograph with a second ink, and became a design style in its own right.
Which images work best?
Those with strong tonal contrast and a clear subject. A duotone throws away all colour information, so an image whose interest was in its colours becomes flat, while one with strong light and shadow becomes striking. Portraits and architecture usually convert well.
Why does my duotone look muddy?
Usually because the two colours are too close in lightness, which compresses the tonal range into a narrow band. Picking a genuinely dark shadow colour and a genuinely light highlight colour gives the image room to breathe, and raising the contrast beforehand helps too.
Is this the same as a colour tint?
No. A tint applies a single colour across the whole image, keeping the original luminance. A duotone maps shadows and highlights to two different colours, so the hue shifts across the tonal range — which is what gives it depth rather than a flat wash.
Can I use it for text backgrounds?
It is well suited to it, since reducing an image to two related colours makes overlaid text far easier to keep legible. Contrast still has to be checked at the worst point of the image rather than assumed.
Does my image get uploaded?
No. The processing runs entirely in your browser, so the photograph never leaves your device.
🔒 This tool runs entirely in your browser. Nothing you enter is uploaded, logged, or stored.