Style
Apply photo filters with live preview
12 hand-tuned filters — B&W, sepia, vintage, vivid, fade, dramatic, cool, warm, and more. See thumbnails of every filter side-by-side, click to apply, dial the intensity.
Drop an image to start filtering
JPG, PNG, WEBP — see all 12 filters as thumbnails
What each filter does
- Black & White — luminance-weighted desaturation. Better than CSS
grayscale()because it weights green and red correctly. - Sepia — classic warm brown tint. Great for old-photograph aesthetics.
- Vintage — sepia + reduced contrast + slight green shadows. The Lomography look.
- Vivid — boosts saturation and contrast. Used for product shots that need to pop in social feeds.
- Fade — washed-out highlights, faded blacks. The Instagram early-2010s aesthetic.
- Dramatic — boosted contrast with crushed shadows and slightly desaturated highlights.
- Cool — shifts whites toward blue. Good for technology, water, snow scenes.
- Warm — shifts whites toward orange. Good for food, sunsets, indoor portraits.
- High Contrast — pure tonal compression. Skips color shifts.
- Matte — lifted shadows, lowered highlights. The "filmic" look.
- Noir — high-contrast B&W with crushed blacks. Cinematic.
How filters work technically
Each filter is a per-pixel function: (r, g, b) → (r', g', b'). The tool reads pixel data via getImageData(), applies the function in JavaScript, and writes the result back via putImageData(). The intensity slider is implemented as a linear interpolation between the original and filtered pixel values: output = original × (1 - t) + filtered × t.
Tips for great results
- Don't max out intensity — most filters look more natural at 70–85% than at 100%.
- Match the filter to the subject — Warm + portraits, Cool + landscapes, Vintage + indoor scenes.
- Strong contrast images filter best — washed-out source images stay washed out.
- Reduce file size after — run the output through the Image Compressor before posting online.