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.
At A Glance
An overview of Colourful features.
- Extract Exif
- Extract IPTC
- Extract XMP
- Extract JFIF / JFXX
- Extract ICC Profiles
- Photoshop fields
- WebP properties
- Netpbm properties
- PNG properties
- BMP properties
- GIF properties
- ICO properties
- PCX properties
Colourful supports popular image file formats listed below.
Colourful targerts .NET Framework 4.5 and .NET Standard 1.1, 2.0.
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
converter = new ConverterBuilder() .FromRGB(RGBWorkingSpaces.sRGB) .ToXYZ(Illuminants.D65) .Build(); RGBColor rgbColor = new RGBColor(1, 0, 0.5); XYZColor xyzColor = converter.Convert(rgbColor); // XYZ [X=0.45, Y=0.23, Z=0.22]