Image Filter Editor

Eight adjustments, live preview, and a copyable CSS filter string if you would rather do it in code.

Drop an image here or click to choose a file — JPG, PNG, WebP or GIF

Runs in your browser. Your image is decoded and redrawn by the Canvas API inside this tab. It is never uploaded, and the original file on your disk is never modified — the tool always produces a new file.

What the image Filter Editor does

This editor exposes the eight adjustments built into the browser's own filter engine, applied to a canvas so the result can be saved as a file. Because it uses the same implementation that powers the CSS filter property, what you see here is exactly what a browser would render — and the tool gives you the equivalent CSS string so you can choose which way to apply it.

That choice matters more than it sounds. Applying a filter in CSS costs no file size, can be animated, and can be undone by changing one line. Baking it into the image is permanent but travels — it survives being emailed, posted to a platform that strips CSS, or opened in software that knows nothing about the web. Use CSS when the image lives on a page you control; bake it in when the file has to stand on its own.

A few of the sliders deserve a note. Saturation above 100% is the fastest way to make a flat photo look worse — it clips skin tones to orange long before it makes anything look vivid. Hue rotation shifts every colour around the wheel together, which is striking on graphics and disastrous on faces. Blur is measured in pixels of the displayed image, so the same value looks much stronger on a small image than a large one.

The presets are starting points rather than looks in themselves. Punchy raises contrast and saturation slightly, which suits a flat phone photo. Faded film lifts the blacks and drops saturation. Noir is full desaturation with heavy contrast. Load one and then adjust — every image needs different numbers.

How to use it

  1. Load an image and try a preset to get in the right area.
  2. Adjust individual sliders. Small moves — a photo rarely needs more than 10–15% of anything.
  3. Compare against the original panel on the left as you go.
  4. Either copy the CSS to apply it on a web page, or download the baked-in PNG.

A worked example

A flat, slightly underexposed phone photo, corrected:

filter: brightness(108%) contrast(118%) saturate(112%);

Three small moves, none more than 18%. Compare that with what the Punchy preset does at its default settings and then pushed too far:

SettingsResult
saturate(115%)Colours look cleaner, skin still natural
saturate(160%)Skin turns orange, red clothing loses all detail
saturate(300%)Poster-like, no longer a photograph

Saturation clips: once a channel hits 255 it cannot go further, so detail in that colour is gone permanently. That is why the second row loses the texture in red clothing while the greens still look fine.

Frequently asked questions

Should I apply filters in CSS or bake them into the file?

CSS when the image lives on a page you control — it costs no file size, is reversible and can be animated. Bake it in when the file has to travel: email, social platforms, print, or anywhere the CSS will not follow it.

Why does my image look worse after raising saturation?

Saturation clips. Once a colour channel reaches its maximum it cannot go higher, so detail in strongly coloured areas is flattened permanently. Skin and red fabric show it first. Stay under about 120% unless you want a stylised look.

Does the blur amount mean the same thing at every image size?

No. Blur is measured in pixels, so 5px is a heavy blur on a 400-pixel image and barely visible on a 4000-pixel one. Judge it by eye at the size the image will actually be displayed.

Can I undo the filter after downloading?

No — the downloaded PNG has the adjustment baked into its pixels. Your original file is untouched, so keep it. This is the main argument for applying filters in CSS where you can.