Hue & Saturation

Rotate every colour in a picture around the hue circle, and push saturation or lightness up or down.

Runs on your deviceImagesWorkingNo account needed

What this tool does

Hue & Saturation converts each pixel from RGB into HSL, adjusts the three components separately, and converts it back. The sliders do not work alike, and knowing which is which explains most of what you will see. Hue is an angle: your figure is added to the pixel's position on the 360-degree colour circle and wraps around the end, so a shift of 120 degrees turns red into green, and -180 and +180 land in the same place. Saturation is a multiplier — whatever saturation a pixel already has is scaled by your percentage, so +100% doubles it and -100% takes it to nothing. Lightness is neither: it adds your figure to the pixel's lightness as flat percentage points.

Two consequences follow from that, and they are the reason this is the wrong tool about as often as it is the right one. The adjustment is global — every pixel in the frame receives the same rotation, and there is no way to select a band and turn only the reds or only the skies the way a desktop editor's per-channel version does. And because saturation multiplies, it cannot invent colour where there is none. A grey, white or black pixel has a saturation of zero, and zero scaled by anything stays zero, so this will not colourise a black-and-white scan and will not recover colour you have already flattened out. Hue shift skips neutral pixels for the same reason: with no saturation there is no hue to rotate, and greys come through untouched whatever angle you dial in.

At the ends of the sliders the maths clips rather than compresses. Saturation is capped at fully saturated, so pushing a vivid photograph hard makes separate bright colours collide at the ceiling and stop being distinguishable from one another. Lightness adds the same number of points to every pixel, which slides the whole tonal range together: the gaps between tones survive until a value reaches an end of the scale, and everything past that end collapses into flat white or flat black with no separation left. Brightness & Contrast is the better instrument when exposure is the real problem, because its contrast pivots around mid-grey and its gamma control bends the curve — that is what lets you lift the shadows while pure white stays exactly where it was. And if you came looking for vibrance in the sense some photo editors use the word — a weighted boost that protects skin tones and leaves already-saturated colours alone — this is not that. The multiplier here is flat, and treats a face exactly as it treats a sky.

The work happens in this browser tab, so the file is not uploaded and the tool keeps working with the network switched off. The cost is a fresh encode. The picture is redrawn on a canvas and written out again, which strips EXIF, the capture date and any GPS tag from the result, takes only the first frame of an animated GIF, and hands GIF and BMP inputs back as PNG, since the output list offers neither and a canvas cannot write them in any case. HEIC and TIFF stop at the decode step with a message explaining why, rather than being processed into something wrong, because no browser ships a decoder for either. The adjustment itself never touches the alpha channel, so a cut-out PNG keeps its transparency — but choose JPG output and those transparent pixels are filled with white, and this tool gives you no setting to change that colour.

How to use it

  1. Add one image, or several. JPG, PNG, WebP and SVG are decoded, plus GIF and BMP, and AVIF on recent browsers. Each file is adjusted in turn under the same three values.
  2. Set the hue shift. The slider runs from -180 to +180 degrees and rotates every colour by that much. Small values warm or cool a shot; large ones swap the palette outright.
  3. Set saturation and lightness. Both run from -100 to +100 per cent. Saturation scales what is already there, so -100% gives a neutral image and +100% doubles the intensity. Lightness adds points rather than scaling.
  4. Pick the output format and the quality. Keep the input's format or write JPG, PNG, WebP or AVIF. Quality runs from 10 to 100 and starts at 88, applying to JPG, WebP and AVIF — PNG is lossless and ignores it.
  5. Run it with at least one value off zero. All three sliders at zero is refused, because the output would be a re-encoded copy of the input rather than an edit.

Processing & privacy

Runs on your device. Your file is processed directly in this browser.

Common use cases

Recolouring a flat graphic or an icon

An illustration, badge or logo where the whole image is meant to move together is exactly what a global colour shift suits — one hue value takes the entire artwork to a new palette.

Calming an oversaturated phone photo

Cameras push colour hard by default. A negative saturation of twenty or thirty per cent pulls a garish sunset or a shirt back to something closer to what you saw.

Warming or cooling a shot

A hue nudge of a few degrees shifts the overall cast of a picture without the shift reading as an effect, which is often enough to make a set of images look like one set.

Building a muted background for text

Drop the saturation and raise the lightness and a photograph stops competing with a headline laid over it, while still reading as a photograph rather than a grey block.

Trying a colour variant before committing

Rotating the hue is a quick way to see how a design looks in another range, so the question is settled before anyone reopens the source file.

Questions

Is my photo uploaded?
No. Decoding, the HSL conversion and the re-encode all happen in this browser tab on the canvas, which is why the tool still works with no network connection at all.
Can I change one colour and leave the rest alone?
Not here. The hue rotation is applied to every pixel in the frame, with no per-colour band to restrict it. Replace Color is the tool built for that — it takes a target colour, a replacement and a tolerance, and leaves everything outside that range alone.
Why does raising saturation do nothing to my grey or faded image?
Because saturation is a multiplier rather than an addition. A neutral pixel is at zero saturation, and scaling zero leaves it at zero. Colour that is not in the file cannot be brought out of it, so a greyscale photo stays grey no matter how far the slider goes.
How is -100% saturation different from Grayscale Image?
Both produce a neutral picture, but they choose different greys. Setting saturation to -100% here leaves each pixel at its HSL lightness, which is the midpoint of its brightest and darkest channel. Grayscale Image defaults to Rec. 709 luminance, which weights green far above blue to match how the eye reads brightness, and it offers several other methods. The same colour photo comes out visibly different from the two.
Does adjusting an image repeatedly degrade it?
Slightly, and it accumulates. The conversion works on 8-bit channels, so a round trip through HSL can move a channel by a count or so, and every pass adds to that. Saving as JPG each time adds its own compression loss on top. Where it matters, go back to the original and make one pass with the final numbers rather than stacking corrections.
What happens to transparency and to EXIF data?
Transparency survives for PNG, WebP and AVIF output, because the adjustment writes only the colour channels and leaves alpha as it found it. EXIF does not survive: the canvas re-encode drops the camera fields, the capture date and any GPS tag, so the result carries no metadata from the original.
Why was my file rejected before anything happened?
Two different things stop a job at the start. Leaving hue, saturation and lightness all at zero is caught as a no-op before the file is even opened. A HEIC or TIFF file gets further but fails at the decode step, because browsers ship no decoder for either — put those through HEIC Converter, or save them as PNG, and run them again.

Related tools