1. Products
  2.   Image
  3.   .NET
  4.   Colourful

Open Source .NET API for Images

Free .NET library for Working with Color Spaces

Colourful is an open source library written in C# to manipulate colors in images. The API allows a wide range of color manipulating features including Color conversion, Chromatic adaptation, and Conversion between RGB working spaces. Colourful also supports computing correlated color temperature (CCT) from chromaticity and computing chromaticity from CCT.

The API has several formulas to differentiate between colors furthermore, colourful contains definitions of all 24 Macbeth ColorChecker colors in sRGB, which are useful for color calibration.

Previous Next

Getting Started with Colourful

The recommended way to install Colourful is via NuGet. Please use the following command to install Colourful.

Install Colourful from NuGet

PM> Install-Package Colourful

Extract Metadata from Images using C#

Colourful allows extracting wide range of metadata information from images. You can extract all information in the image by looping directories and then by looping through each tag in it. The directory contains metadata type information and tag includes the properties. You can extract specific information from images using directories.OfType().FirstOrDefault() method.

Extract Camera Specific Maker Notes using C#

The Open Source image processing API Colourful allows extracting camera-specific makernote for cameras manufactured Canon, Apple, Agfa, Casio, DJI, Epson, Fujifilm, Kodak, Kyocera, Leica, Minolta, Nikon, Olympus, Panasonic, Pentax, Reconyx, Sanyo, Sigma/Foveon and Sony.

Colors Conversion b/t Color Spaces using C#

The Open Source Colourful library fully supports conversion between color spaces inside .NET application. It enables software developer to convert colors from a single source color space to a single target color space with just a couple of lines of C# code. To achieve any kind of conversion first you need to build a converter object.

Convert A Color from sRGB to XYZ

IColorConverter converter = new ConverterBuilder()

RGBColor rgbColor = new RGBColor(1, 0, 0.5);
XYZColor xyzColor = converter.Convert(rgbColor); // XYZ [X=0.45, Y=0.23, Z=0.22]