Image filters and adjustments

LookOriginal
Adjusted0/8
Weight
Change

Image Filters and Adjustments

Adjust brightness, contrast, saturation, hue, grayscale, sepia, inversion, and blur on a photo, with a wipe handle that puts the edit directly against the original. Presets are rendered from your own picture rather than shown as generic swatches, and the exact CSS filter declaration is copyable — so the same look can be baked into a file or applied live in a stylesheet.

Adjustments, live
8
Presets as starting points
6
Canvas filter string behind it all
1
Bytes uploaded
0

Step by step

How to use it

  1. 01Add the picture

    Drop it anywhere on the page. It is decoded locally and every adjustment is applied to a canvas in your browser — the file on disk is never modified.

  2. 02Start from a preset if one is close

    Vibrant, Warm film, Noir, Soft matte, and Newsprint are not filters in the Instagram sense — each one just sets the eight sliders to a combination worth starting from. Every value stays editable afterwards.

  3. 03Tune the sliders that matter

    Brightness, contrast, saturation, hue rotation, greyscale, sepia, invert, and blur. They compose in that order into a single filter string, so their effects stack rather than replacing one another.

  4. 04Export at the quality you need

    JPEG at 92 by default, which suits photographs. Switch to PNG if the image has flat colour or transparency you want preserved through the edit.

Worked example

What a preset actually sets

Presets here are transparent: each is a set of slider positions, printed below exactly as it is applied. Read them as recipes you can adjust rather than effects you either accept or reject.

Given

Neutral
all sliders at rest
Applied via
canvas filter
Order
as listed, left to right

The generated filter string for two presets

Noir
  brightness(108%) contrast(130%) saturate(20%) grayscale(80%)

Warm film
  brightness(105%) contrast(105%) saturate(115%)
  hue-rotate(-8deg) sepia(20%)
Noir keeps
20% saturation
Warm film shifts
-8 degrees of hue
Values at rest
omitted entirely

Noir is not simply greyscale: it leaves a fifth of the colour and pushes contrast to 130, which is what keeps the result from looking flat. Values sitting at their neutral are left out of the string altogether, so what you see above is the complete description of the effect — nothing hidden, and nothing you cannot adjust by hand afterwards.

Before you edit

What to know about adjusting images

These are the same filters CSS uses

The canvas filter property takes CSS syntax, so the string driving the export is one you could paste into a stylesheet. That is a convenience worth knowing: prototype the look here, then apply it live in the browser if the image is going on a page you control.

Order matters, and it is fixed

Filters compose in sequence, so saturating after a greyscale pass has nothing left to saturate. The order here — brightness, contrast, saturation, hue, greyscale, sepia, invert, blur — is applied consistently, which is why a preset reproduces exactly rather than approximately.

Contrast is the fastest way to lose detail

Pushing contrast clips highlights to white and shadows to black, and clipped pixels cannot be recovered by pulling the slider back on the exported file. Judge it on the areas you care about — a face, a label — not on the picture as a whole.

Blur is a look, not a redaction

A blurred region is still derived from the pixels underneath and, at low radii, is sometimes reversible. If you are hiding a face, a name, or a number, crop it out or cover it — do not blur it and assume it is gone.

Every change is non-destructive until export

Adjustments live in the settings, not in the picture: reset returns the original exactly, and moving a slider back and forth costs nothing. Only the download applies them permanently, to a copy.

The image never leaves your browser

Decoding, filtering, and encoding all happen on your machine, so an unreleased photograph or an internal screenshot is safe here. The share link carries the slider positions — a look you can send to a colleague to apply to their own file.

The judgement call

Which control fixes which complaint?

Most 'this photo looks wrong' problems map to one slider. These are the pairings worth knowing.

  • The picture looks flat and grey

    Contrast

    Separates the tones. Raise it before reaching for saturation, which exaggerates colour without adding depth.

  • Shot indoors, everything looks orange

    Hue rotate

    A small negative rotation counters tungsten warmth. Large rotations turn the whole scene false — keep it under about 15 degrees.

  • Colours look washed out

    Saturation

    Raise it in small steps. Past about 140% skin tones go orange before anything else looks better.

  • The whole frame is too dark

    Brightness

    It lifts every tone equally, including the shadows. If only the shadows are blocked, lower contrast slightly as well.

  • A face or a plate number must be hidden

    Crop instead

    Blur is a visual effect, not redaction. Remove the region or cover it with a solid shape.

  • A blown-out sky, pure white

    Nothing here

    Clipped highlights carry no data to recover. That needs the raw file, not a filter.

Reference

How the adjustments are defined

Adjustments
8, applied as one filter stringbrightness · contrast · saturate · hue-rotate · grayscale · sepia · invert · blur, composed in that order.
Neutral values
100% / 0 / 0pxAnything sitting at its neutral is omitted from the string, so the filter stays as short as the edit.
Presets
6, including OriginalVibrant, Warm film, Noir, Soft matte, Newsprint. Each sets slider positions and nothing else.
Syntax
Identical to CSS filterThe generated string works unchanged in a stylesheet, which makes this a usable prototyping surface for web work.
Default export
JPEG at quality 92Suited to photographs. PNG preserves flat colour, sharp edges, and transparency through the edit.

FAQ

Questions, answered plainly

How do I make a photo black and white?

Set Grayscale to 100%. For a stronger, more photographic monochrome, raise Contrast to around 120–130% at the same time — the Newsprint preset does exactly that. Partial values are useful too: 60% grayscale leaves a hint of colour, which is a common editorial look.

What is the difference between brightness and contrast?

Brightness scales every pixel value in the same direction, so the whole picture gets lighter or darker and the difference between light and dark areas is unchanged. Contrast pushes values away from the midpoint: highlights get brighter, shadows get darker, and the range between them widens. Underexposed photos usually need brightness; flat, hazy ones usually need contrast.

Can I use these filters in CSS instead of exporting a file?

Yes, and that is what the CSS output block is for. The canvas and CSS filter properties share the same syntax, so the declaration shown is the one that produced the preview. Applying it to an <img> element in a stylesheet gives an identical result — useful when you want one source file rendered several ways, or a look that responds to a theme.

Does filtering reduce image quality?

The filter itself works at full resolution and does not resample anything. What can cost quality is the re-encode: exporting as JPEG or WebP compresses the result. Choose PNG for a lossless output, or keep the quality slider at 90% or above. Heavy blur and extreme contrast do genuinely discard information, since that detail no longer exists in the output pixels.

Why does hue rotate look different from changing colours directly?

Hue rotation spins every colour around the colour wheel by the same angle, keeping their relationships intact. It shifts the overall cast — warmer or cooler — rather than recolouring one object. To change a single colour you need a selection-based editor; this tool applies each adjustment to the whole frame.

Are my photos uploaded anywhere?

No. The file is decoded, filtered, and re-encoded by your browser on a local canvas. Nothing is transmitted or stored, and the share link carries only the eight slider values and your export settings.

Filtering runs in your browser on a local canvas. The picture is never uploaded, and share links carry only the adjustment values.