Image Duotone Effect
Apply a two-color duotone effect to any image — pick a shadow color and a highlight color, adjust midpoint and contrast, download the result.
How to use
- Drop an image. Pick a preset (Spotify green-black is the classic) or two custom hex colors.
- Slide the midpoint to control where shadows end and highlights begin. Tweak contrast for punchier or softer transitions.
- Download the PNG, or copy the SVG filter to apply the same effect via CSS on any element in your site.
About this tool
ShowHide
Duotone replaces an image's tonal range with a gradient between two colors — shadows become the dark color, highlights become the bright color, midtones interpolate. The result is the iconic look you've seen on Spotify covers, indie album art, and editorial photography. This builder runs the duotone on a canvas in your browser (no upload), so it works on any image size your machine can handle. The midpoint slider shifts where the color split happens; contrast steepens or flattens the curve. The output is downloadable PNG, plus the equivalent SVG feColorMatrix + feComponentTransfer filter so you can apply the same effect via CSS filter: url(#duotone) without re-rasterizing.
Frequently asked questions
Why does it look muddy in the middle?
Default contrast at 0 is a linear ramp between the two colors. Raising contrast steepens the transition — useful when your image has a lot of mid-grays that turn into muddy mixed colors. Lowering it gives softer, more painterly gradients. The midpoint slider shifts where the split happens for unevenly-exposed photos.
How does the SVG filter version work?
It uses feColorMatrix to convert the image to grayscale (using BT.709 luminance coefficients), then feComponentTransfer with a table function to remap each channel to a 2-point gradient between your shadow and highlight RGB values. The result: same effect as the canvas version, but without rasterizing — and animatable via CSS transitions on the SVG filter.
Which photos work as duotones and which do not?
Ones with clear tonal separation — a bright subject against a dark ground, strong shadows, a recognisable silhouette. The effect throws away hue entirely and maps only lightness, so a photo whose subject is distinguished from its background by colour rather than by brightness collapses into an unreadable shape. Convert a candidate to greyscale first: if it reads there, it will read as a duotone.
Is a duotone smaller than the original image?
Usually much smaller as a PNG, because the result contains a narrow ramp between two colours rather than the full palette of a photograph, and that compresses extremely well. As a JPEG the saving is smaller and the artefacts more visible, since the format is tuned for photographic detail rather than for smooth two-colour gradients. Export duotones as PNG unless the image is large enough that size dominates.
Related tools
Image Vignette Generator
Add a soft radial vignette to any photo — adjustable amount, softness, radius, oval / circle / rectangle shape, dark or light, any color.
Image
Tilt-Shift / Miniature Effect
Fake a miniature-diorama look on any photo — sharp focus band plus blurred top and bottom, with optional saturation boost, all in the browser.
Image
Image Posterize
Reduce a photo to N levels per channel for that flat poster-art look, with optional Floyd-Steinberg dithering and per-channel level control.
Image
Image Blur
Apply Gaussian, box, or motion blur to any image directly in your browser. Adjustable radius 0-64 px, with the equivalent CSS filter string for copy-paste.
Image
Image Color Picker
Drop an image and click anywhere to grab the exact HEX / RGB / HSL of that pixel — collect a palette as you go.
Image
CSS Filter Playground
Visually compose blur, brightness, contrast, hue, sepia, invert, and more — copy the CSS filter or Tailwind arbitrary value.
Color & CSS