Adjust Colors Using Lab
View as MarkdownAdjusts hue modifying [a] component of Lab color space.
Code Snippet
// L - lightness
// a - green/red
// b - blue/yellow
using (var lChannel = new Bitmap())
using (var aChannel = new Bitmap())
using (var bChannel = new Bitmap())
{
using (var reader = ImageReader.Create("Chicago.jpg"))
using (var labConverter = new Aurigma.GraphicsMill.Transforms.ColorConverter(PixelFormat.Format24bppLab))
using (var splitter = new LabChannelSplitter())
{
splitter.L = lChannel;
splitter.A = aChannel;
splitter.B = bChannel;
Pipeline.Run(reader + labConverter + splitter);
}
// Increase yellow
bChannel.ColorAdjustment.ChannelBalance(new float[] { 0.1f }, new float[] { 1f });
using (var combiner = new LabChannelCombiner())
using (var rgbConverter = new Aurigma.GraphicsMill.Transforms.ColorConverter(PixelFormat.Format24bppRgb))
using (var writer = ImageWriter.Create("AdjustColorsUsingLab.jpg"))
{
combiner.L = lChannel;
combiner.A = aChannel;
combiner.B = bChannel;
rgbConverter.DestinationProfile = ColorProfile.FromSrgb();
Pipeline.Run(combiner + rgbConverter + writer);
}
}
Input
Chicago.jpg
Output
AdjustColorsUsingLab.jpg
Used APIs
- Aurigma.GraphicsMill.Bitmap.ColorAdjustment
- Aurigma.GraphicsMill.Codecs.ImageReader
- Aurigma.GraphicsMill.Codecs.ImageReader.Create(String)
- Aurigma.GraphicsMill.Codecs.ImageWriter
- Aurigma.GraphicsMill.Codecs.ImageWriter.Create(String)
- Aurigma.GraphicsMill.ColorAdjustmentProvider.ChannelBalance(Single[],Single[])
- Aurigma.GraphicsMill.ColorProfile
- Aurigma.GraphicsMill.ColorProfile.FromSrgb
- Aurigma.GraphicsMill.LabChannelCombiner
- Aurigma.GraphicsMill.LabChannelCombiner.A
- Aurigma.GraphicsMill.LabChannelCombiner.B
- Aurigma.GraphicsMill.LabChannelCombiner.L
- Aurigma.GraphicsMill.LabChannelSplitter
- Aurigma.GraphicsMill.LabChannelSplitter.A
- Aurigma.GraphicsMill.LabChannelSplitter.B
- Aurigma.GraphicsMill.LabChannelSplitter.L
- Aurigma.GraphicsMill.Transforms.ColorConverter
- Aurigma.GraphicsMill.Transforms.ColorConverter.DestinationProfile