More inverting options
THIS IS CLOSED; CLEARLY THIS WEBSITE IS NOT FOR REPORTING BUGS OR SUGGESTING FEATURES!
GIMP currently has only two inverting options: Invert and Value Invert.
Invert inverts Red, Green and Blue independently. This gives a well inverted brightness and hue, but saturation is decreased as original brightness decreases (for example 008000, a dark saturated green, becomes FF7FFF, a light desaturated magenta).
Value Invert takes the maximum of Red, Green and Blue of the color, then multiplies the color to get the new maximum to the inverse of the maximum. This preserves hue and saturation well, but deals badly with brightness, as the maximum is a bad brightness function. As a result, any color with HSV value of 1 (FF0000, FFFF00, 00FF00, FFFFFF, etc.) becomes black, even though 0000FF (blue) is visually a lot darker than FFFFFF (white).
Suggestions:
Lightness Invert, for completeness, because I hate when a program offers HSV tools but not HSL tools, or vice versa. It keeps Hue and Saturation in HSL while inverting Lightness. It has a similar problem to Invert when it comes to saturation, because HSL's Saturation looks full on light desaturated colors.
Visual brightness Invert would generate the visual brightness by the formula
(0.212671×R^2.2+0.71516×G^2.2+0.072169×B^2.2)^0.4545454545454546
. It would also generate the visual brightness of the RGB inverse, which is the target brightness. The appropriate multiplication factor is target brightness divided by original brightness. It multiplies the color by the factor, clipping. For example 0000FF becomes 0000FF, because although this is a dark color, a brighter version would require exceeding RGB limits. 8000FF becomes FF00FF because, again, this is a dark color, but this time red had room to increase, so the hue got distorted. 000001 becomes 0000FF, because this invert function assumes that it's a colored shining light with very low brightness, and it needs to invert the shining brightness. 000000 becomes FFFFFF, because otherwise there would be a division by 0.
Hue Invert inverts the hue in HSL or HSV; both would lead to the same result.
Visual hue Invert works by that HSL or HSV hue inversion, but then multiplies the brightness by original visual brightness divided by intermediate visual brightness to restore the original visual brightness. This is done because the hues have different visual brightness from each other.
Saturation Invert (HSV) inverts the HSV saturation.
Saturation Invert (HSL) inverts the HSL saturation.
Visual saturation Invert (HSV) works like Visual hue Invert, but it starts with Saturation Invert (HSV).
Visual saturation Invert (HSL) works like Visual saturation Invert, but it uses Saturation Invert (HSL).
Hue Shift would shift the hue in HSL or HSV.
Visual hue Shift would shift the hue in HSL or HSV, but then it applies the multiplication restore procedure as in Visual hue Invert.