C# Color Object

The C# Color Object is a very convenient way of storing colors in your C# projects. Once you have a Color object you can easily get the RGB and HSB values out of it. Understanding the Color object is important if you are learning to do any C# work that involves colors.

Creating Color Objects

If you have an HTML color code and you want to make a Color object then you may want to read about how to Create C# Color Objects from HTML Color Codes.

The easiest way to create a Color object is from a known color.

// you can specify known color names
var lightGray = Color.LightGray;

If you happen to have the color that you need in a string you can specify it that way as well.

// the color can even be in a string
var lightGray = Color.FromName("lightgray");

If you need to test if the color returned is valid you can look at the alpha channel. It will be 0 for a bad color name.

var lightGray = Color.FromName("not-a-color");
if (lightGray.A == 0)
    throw new Exception("That's not a valid color name.");

If you want to translate a typed in color string to a proper known color value you can do that too.

var lightGray = Color.FromName("lightgray");

if (lightGray.IsKnownColor)
    var colorName = lightGray.ToKnownColor().ToString();
    // colorName is a string with the text "LightGray" in it

C# Color Object

Once you have a Color object you can get the individual Red, Green, and Blue components as well as the Alpha (transperancy).

// if you want to retrieve the RGB values of a color it's very simple
var red = lightGray.R;
var green = lightGray.G;
var blue = lightGray.B;
var alpha = lightGray.A;

If you need to be in the HSB (Hue, Saturation, Brightness) gamut it’s just as easy.

// if you want the HSB values you can easily get those
var hue = lightGray.GetHue();
var saturation = lightGray.GetSaturation();
var brightness = lightGray.GetBrightness();

C# Image Processing

Be sure to check out our other C# Image Processing Guides located here.

Make electronics fun.

Leave a Reply

Your email address will not be published. Required fields are marked *