Tint Using Lab
Pipeline Transform Color Conversion Channels
Tints using Lab color space.
Сode Snippet
var color = new RgbColor(250, 178, 79);
var labColor = (LabColor)color.Convert(PixelFormat.Format24bppLab);
var a = labColor.A;
var b = labColor.B;
using (var lChannel = new Bitmap())
{
// Convert to Lab color space and get lightness channel
using (var reader = ImageReader.Create("Chicago.jpg"))
using (var labConverter = new ColorConverter(PixelFormat.Format24bppLab))
using (var splitter = new LabChannelSplitter())
{
splitter.L = lChannel;
Pipeline.Run(reader + labConverter + splitter);
}
// Create a and b channels, combine with lightness channel and convert to RGB color space
using (var combiner = new LabChannelCombiner())
using (var aChannel = new Bitmap(lChannel.Width, lChannel.Height, PixelFormat.Format8bppGrayscale, new GrayscaleColor((byte)(a + 127))))
using (var bChannel = new Bitmap(lChannel.Width, lChannel.Height, PixelFormat.Format8bppGrayscale, new GrayscaleColor((byte)(b + 127))))
using (var rgbConverter = new ColorConverter(PixelFormat.Format24bppRgb))
using (var writer = ImageWriter.Create("TintUsingLab.jpg"))
{
combiner.L = lChannel;
combiner.A = aChannel;
combiner.B = bChannel;
rgbConverter.DestinationProfile = ColorProfile.FromSrgb();
Pipeline.Run(combiner + rgbConverter + writer);
}
}
Input
Chicago.jpg
Output
TintUsingLab.jpg
For AI-assisted development: Download Graphics Mill Code Samples XML Catalog