Black & White Image Converter

Convert color photos to black and white using nine professional algorithms — Luminosity BT.709, Luminance BT.601, channel mixer with R/G/B sliders and filter presets, threshold with six dithering modes, adaptive threshold for documents, and more. Add toning, adjustments, and presets. 100% in your browser.

Drop images here, or click to browse

JPEG, PNG, WebP, BMP, GIF, TIFF, or HEIC · up to 20 files · max 12,000×12,000 px · 50 MB

Files never leave your device.

What it does

Nine conversion algorithms

Luminosity (BT.709) for natural-looking results, Luminance (BT.601) for legacy compatibility, Average, Lightness (HSL), Desaturation (HSL), Single Channel R/G/B for color-filter simulation, Custom Channel Mixer with six filter presets, Threshold with six dithering modes, and Adaptive Threshold for documents.

Six dithering modes

Floyd-Steinberg, Atkinson, Bayer 8×8, Jarvis-Judice-Ninke, Stucki, and None. Pair any with the threshold algorithm to binarize images while preserving tonal detail.

Adjustments that compose

Brightness, contrast, exposure (EV), gamma, highlights, shadows, whites, blacks, sharpness (unsharp mask), grain, vignette, and a tone-curve editor — all preview in under 200 milliseconds on the proxy.

Toning (duotone)

Sepia, selenium, cyanotype, platinum, gold, or a custom hex color, with intensity slider 0–100. Toning is modeled on silver-replacement chemistry, not Instagram-filter math.

Eleven built-in presets

Classic B&W, High Contrast Newspaper, Soft Portrait, Dramatic Landscape, Sepia Vintage, Cyanotype Blueprint, Film Noir, Ansel Adams Zone System, Pencil Sketch, Newspaper Halftone, and Document Scan.

Batch & multi-format export

Drop up to 20 images, apply settings across the batch, and export as a ZIP. Or pick PNG, JPEG (with quality slider), WebP (lossy + lossless), or PDF (single image or multi-page) for any output.

Files never leave your device

All decoding, pipeline math, and encoding happen in your browser. EXIF (including GPS) is stripped from output by default. Open DevTools Network panel during conversion and watch — there are no outbound requests carrying your image.

Reproducible recipes

Every adjustment is encoded in the URL hash. Send a teammate a permalink and they get your exact algorithm, channel mixer, dithering, and toning — applied to whichever image they drop.

How to use Black & White Image Converter

  1. 1
    Drop your image

    Drag and drop any JPEG, PNG, or WebP file onto the upload zone, or click to browse. The decoder runs locally — no upload happens.

  2. 2
    Pick an algorithm

    Luminosity (BT.709) is the default and matches what most photo editors call "natural" grayscale. Try Single Channel R for dramatic skies, Threshold with Floyd-Steinberg for binarized output, or Adaptive Threshold for documents.

  3. 3
    Tune the adjustments

    Brightness, contrast, exposure, gamma, sharpness, grain, vignette, and tone curve all preview in real time on a downsampled proxy so sliders feel instant.

  4. 4
    Optionally apply toning

    Sepia, selenium, cyanotype, platinum, gold, or a custom hex color. Set intensity to 0 to keep the image neutral, or 100 for full duotone.

  5. 5
    Export your result

    PNG for lossless quality. JPEG with quality slider for smaller files. WebP for modern web. PDF for documents. ZIP for batches.

When to use this

Photographer simulating color filters

Use the channel mixer's "Red Filter" preset to darken a blue sky for dramatic landscape contrast, the way a red gel filter would on Tri-X 400 film. The green channel keeps skin tones smooth; the blue channel exposes atmospheric haze.

Print prepress operator binarizing a halftone

Pick Threshold with Floyd-Steinberg dithering and tune the threshold slider until the proof matches the press dot pattern. Export PDF and hand it to the press.

Document scanner cleaning a smartphone photo

Pick Adaptive Threshold with block size 31 and constant 8. The result is a crisp scan with even tone across the page, even if your phone's camera caught shadows.

Designer creating a vintage sepia look

Apply the Sepia Vintage preset, drop intensity to 70%, add 20% grain, and export JPEG at quality 92. The result looks closer to actual silver-replacement toning than any "sepia filter" SaaS.

E-ink display preparation

E-readers and digital signage tend to display 4–16 grays. Convert your image with Threshold + Bayer 8×8 dithering for predictable, banding-free output.

Common errors & fixes

We don't recognize that format
Phase 1 of this tool accepts JPEG, PNG, and WebP. HEIC, TIFF, BMP, and GIF are coming next. For HEIC right now, the HEIC to JPG tool linked below converts to a supported format.
Image is too large
Phase 1 caps input at 4,000×4,000 pixels. Resize first with the Image Resizer tool, or wait for the next release which lifts the cap to 12,000×12,000.
Files larger than 50 MB aren't supported
The 50 MB cap protects browser memory. Compress with the Image Compressor tool first, or downscale.
Could not decode this image
The file may be corrupt or use an unusual codec variant. Re-export from your source app and try again.
Your browser is too old for this tool
The converter needs createImageBitmap and canvas. Use a recent Chrome, Edge, Firefox, or Safari (15.4+).

Technical details

Default algorithmLuminosity (ITU-R BT.709): Y = 0.2126·R + 0.7152·G + 0.0722·B
BT.601 alternateY = 0.299·R + 0.587·G + 0.114·B (legacy SD video standard)
Dithering implementationsFloyd-Steinberg, Atkinson, Bayer 8×8, Jarvis-Judice-Ninke, Stucki, None
Pipeline orderDecode → Algorithm → Adjustments → Toning → Encode
Preview strategyDownsampled 1500-px proxy for live preview; full-resolution pipeline on export
Worker boundaryOffscreenCanvas + Web Worker for full-resolution export and heavy preview ops; main-thread fallback on Safari
Color profile handlingsRGB assumed; embedded ICC profiles are ignored in v1
Privacy postureZero uploads — all image data stays on your device. EXIF stripped on output by default.

Why "desaturate" is not the same as "convert to grayscale"

CSS's `filter: grayscale(1)` and HSL desaturation both produce monochrome output, but they collapse colors using simple averages — bright red ends up the same gray as middle blue, even though the human eye perceives them at very different brightnesses.

Luminosity BT.709 weights the channels (R 0.2126, G 0.7152, B 0.0722) so the resulting gray matches how the eye sees brightness. Red becomes dark, green becomes light, blue becomes very dark — same as professional desaturation in Photoshop's "Image > Mode > Grayscale" command.

For most photos, BT.709 is the right default. For technical or scientific imagery where channel equality matters, use Average. For matching legacy SD video, use BT.601. The conversion you pick changes the final picture significantly — that's why we ship nine.

How channel mixing simulates color filters

Before digital, black-and-white photographers screwed colored gel filters onto their lenses to control how colors mapped to grays. A red filter darkened blue skies (making clouds pop), an orange filter mildly lightened skin, a green filter brightened foliage, and an infrared filter made trees go bright white and the sky go nearly black.

The channel mixer reproduces these filters exactly. The "Red Filter" preset uses (95, 5, 0) — pulling 95% from the red channel and almost nothing from green or blue. The result mimics what Tri-X 400 film would have done in 1965 with a #25 red filter. The "Infrared Simulation" preset (-50, 200, -50) pushes the green channel to its limits to approximate the spectral response of IR film.

Use sum-to-100 lock to preserve exposure when adjusting one slider — the others auto-adjust so the brightness budget stays balanced.

Threshold and dithering: from photo to pure black and white

Threshold turns every pixel into either pure black (0) or pure white (255) based on a single decision boundary. With no dithering, the result loses all tonal detail — useful for line art, logos, or stencil prep, but it crushes photographs.

Dithering simulates middle grays by scattering black and white pixels in patterns the eye blends together. Floyd-Steinberg (1976) is the classic error-diffusion algorithm — it propagates the rounding error from each pixel to its right and bottom neighbors using weights 7/16, 3/16, 5/16, 1/16. The result preserves gradients with a characteristic "noisy" texture.

Atkinson (Bill Atkinson, MacPaint 1984) diffuses less error per pixel for higher contrast — what made the original Mac look so crisp. Bayer 8×8 (ordered dithering) uses a fixed threshold matrix instead of error diffusion, which produces a regular pattern useful for retro-game aesthetics or e-ink displays. Jarvis-Judice-Ninke and Stucki are higher-quality variants of error diffusion that spread error across two rows.

Pick the dithering algorithm based on output medium: Floyd-Steinberg or Stucki for screen and modern print, Atkinson for retro Mac aesthetic, Bayer for predictable banding-free e-ink output, Jarvis for highest fidelity at the cost of speed.

Frequently Asked Questions

Will my photos be uploaded to a server?

No. Every step — decode, algorithm, adjustments, encode — happens in your browser. Open DevTools, switch to the Network panel, and watch during conversion: there are no outbound requests carrying your image bytes. The HEIC-decoder library (when needed) is fetched once from a public CDN before any file is selected; nothing carrying your photo data is ever sent out.

What's the difference between Luminosity BT.709 and Luminance BT.601?

BT.709 (R 0.2126, G 0.7152, B 0.0722) matches modern HD video and is what most professional editors mean by "grayscale". BT.601 (R 0.299, G 0.587, B 0.114) is the older SD-video standard with slightly warmer rendition. For photo work today, BT.709 is the right default; for matching legacy assets (DVD-era video, old web), use BT.601.

Why does my photo look flat after "desaturate" but better after Luminosity?

HSL Desaturation uses (max+min)/2 — which treats every color as having the same brightness as its lightness, ignoring that the human eye sees green ~7× brighter than blue. Luminosity uses perceptual weights that match how you actually see brightness. For natural-looking grayscale, always prefer Luminosity (BT.709). Desaturation is included for technical and scientific use cases where channel equality matters.

How do I get the most dramatic landscape look?

Pick the channel mixer's "Red Filter" preset, drop the gamma to ~0.85, push contrast to +30 and shadows to -20. The result is the same darkroom move photographers made for decades to make skies pop and clouds glow.

Which dithering algorithm should I use?

Floyd-Steinberg for general-purpose, modern output. Atkinson for retro/Mac aesthetic. Bayer 8×8 for e-ink and predictable patterns. Jarvis-Judice-Ninke when you have time for the highest quality. None when you want pure binary (line art, stencils, logos).

Will EXIF data be preserved in my output?

No, EXIF is stripped by default. The pipeline re-encodes through canvas which doesn't carry metadata across. You can toggle "Preserve EXIF" in the Output panel if you need it. GPS coordinates are stripped even when preservation is on, for privacy.

Can I save my own presets?

Yes. Tune the algorithm, adjustments, and toning to taste, then click "Save preset" — give it a name. You can save up to 10 custom presets to your browser's localStorage. You can also export them as JSON and import on another device.

What does the share link contain?

Only the recipe — algorithm, all numeric parameters, toning, and filename. It never contains image bytes. Send a teammate a permalink and they get the exact same conversion settings, applied to whichever image they drop.

How big a batch can I process at once?

Up to 20 images per batch. The output is delivered as a ZIP. The Worker processes them serially with per-file progress.

What happens to my files when I close the tab?

Nothing is persisted. Decoded image data, in-progress conversions, and all object URLs are released when you close the tab or click Reset. Your custom presets and history (recipe-only) are kept in localStorage.

Can I convert HEIC photos from my iPhone?

HEIC support is coming in the next release. For now, use the HEIC to JPG tool linked below to convert HEIC to JPEG first, then drop the JPEG into this converter.

Will this work on my phone?

Yes, on any modern mobile browser. Touch the upload zone to pick photos from your library. Pinch to zoom in the preview. Controls collapse into a tabbed panel below the preview on narrow screens.

Related Tools