1

I've been looking for a way to invert the saturation of a photo in photoshop.

For example a pixel that is:

hsl(42, 100%, 42%) must become hsl(42,   0%, 42%)
hsl(42,   0%, 42%) must become hsl(42, 100%, 42%)
hsl(42,  20%, 42%) must become hsl(42,  80%, 42%)

hue and lightness must remain unchanged

is there a way to do that automagically?

thank you

  • Just to make sure: when saying hsl you explicitly mean hsl, not hsb? Because with HSB it'd be easy to achieve but I'm not sure about HSL (Photoshop doesn't use HSL model) – Sergey Kritskiy Nov 18 '19 at 9:37
  • i'm not sure what the difference is tbh – Wes Nov 19 '19 at 2:41
  • Wikipedia on HSL and HSV (HSB is also called HSV). – Wolff Nov 19 '19 at 6:55
3

Before: enter image description here

After: enter image description here

  • Duplicate your layer (this is destructive)
  • Filter > Other > HSB/HSL
  • Input RGB, Row Order HSB or HSL (up to you)
  • The image will now look distorted as the R, G & B channels are represented as H, S, L/B respectively
  • Invert the Green (now Saturation) channel
  • Select RGB (all) channels
  • Convert back to RGB using the same filter, just reversed (so Input HSB/HSL, Row Order RGB)

HSB values before: enter image description here

HSB values after: enter image description here

Due to the relationships of colour you may get some shift in hues (notice the blue has dropped ~20 degrees), but the saturation is inverted perfectly and the brightness is maintained

If the HSB/HSL filter is not available you may need to install it as it is optional for some installations:

Electric Image & HSBHSL (Optional Multiplugin)

| improve this answer | |
  • Hehe. You beat me by 3 minutes. +1 for being first. Hope you don't think I quickly wrote my answer after reading yours. :-) – Wolff Nov 18 '19 at 23:10
  • thank you both for the help! both answers were equally useful. i accepted the quickest. thank you – Wes Nov 19 '19 at 6:50
3

There is a way to do this. It's takes a few steps, but can easily be recorded as an action.

Photoshop doesn't support HSL color natively, so first of all you need to download and install the HSB/HSL Filter from Adobe's site.

The filter changes an ordinary RGB image so the red, green and blue channels represent hue, saturation and lightness instead. It will look strange, but you can make manipulations and then convert it back to ordinary RGB.

I'm gonna use an example image with a lot of colors and your three chosen colors swatches. We just have a problem with the middle swatch: hsl(42, 0%, 42%). This color doesn't make sense in Photoshop (or anywhere else). Photoshop doesn't really work in either HSL or HSB. Every color is in the end stored as an RGB color. When saturation is set to 0% we actually have a neutral color. Photoshop (wrongly) displays the hue of neutral colors as (red), but in reality it should be null or NaN - no hue. Photoshop can't store the hue of an unsaturated color, so the conversion of that particular color will not give the result you expect.

Here is our test image:

  • Use Filter > Other > HSB/HSL to change the RGB channels to represent HSL. Set Input Mode to RGB and Row Order to HSL:

    The result looks like this:

  • In the Channels panel select the Green channel, which now represents saturation:

  • Press Ctrl/Cmd + I to invert the channel:

  • Select all RGB channels and Filter > Other > HSB/HSL the reverse way to convert the image back to ordinary RGB:

    The result looks like this:

(Notice how the gray swatch defaults to red (hue: 0°). This will happen with all neutral pixels with this method since Photoshop can't store the hue of unsaturated pixels.)

| improve this answer | |
  • Wow close timing! Upvoting yours as you illustrated every step of the way – goodnightfirefly Nov 18 '19 at 23:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.