Skip to content

Instantly share code, notes, and snippets.

@zihotki
Created December 17, 2017 00:17
Show Gist options
  • Star 10 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save zihotki/09fc41d52981fb6f93a81ebf20b35cd5 to your computer and use it in GitHub Desktop.
Save zihotki/09fc41d52981fb6f93a81ebf20b35cd5 to your computer and use it in GitHub Desktop.
.net C# make a color lighter or darker
/// <summary>
/// Creates color with corrected brightness.
/// </summary>
/// <param name="color">Color to correct.</param>
/// <param name="correctionFactor">The brightness correction factor. Must be between -1 and 1.
/// Negative values produce darker colors.</param>
/// <returns>
/// Corrected <see cref="Color"/> structure.
/// </returns>
public static Color ChangeColorBrightness(Color color, float correctionFactor)
{
float red = (float)color.R;
float green = (float)color.G;
float blue = (float)color.B;
if (correctionFactor < 0)
{
correctionFactor = 1 + correctionFactor;
red *= correctionFactor;
green *= correctionFactor;
blue *= correctionFactor;
}
else
{
red = (255 - red) * correctionFactor + red;
green = (255 - green) * correctionFactor + green;
blue = (255 - blue) * correctionFactor + blue;
}
return Color.FromArgb(color.A, (int)red, (int)green, (int)blue);
}
@ilciano
Copy link

ilciano commented Feb 7, 2024

Thanks for sharing.
ChangeColorBrightness(Color.Green, -0.3f);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment