Split Channels

Branched Pipeline Channels

Split the RGB channels of an image, adjust their brightness individually, and save each channel as a separate image.

Сode Snippet

using (var reader = ImageReader.Create("Chicago.jpg"))
using (var splitter = new RgbChannelSplitter())
using (var brightnessR = new Brightness(0.1f))
using (var writerR = new PngWriter("Chicago_R.png"))
using (var brightnessG = new Brightness(0.2f))
using (var writerG = new PngWriter("Chicago_G.png"))
using (var brightnessB = new Brightness(-0.1f))
using (var writerB = new PngWriter("Chicago_B.png"))
{
    splitter.R = brightnessR;
    brightnessR.Receivers.Add(writerR);

    splitter.G = brightnessG;
    brightnessG.Receivers.Add(writerG);

    splitter.B = brightnessB;
    brightnessB.Receivers.Add(writerB);

    Pipeline.Run(reader + splitter);
}

Input

Chicago.jpg

Output

Chicago_R.png

Chicago_G.png

Chicago_B.png

For AI-assisted development: Download Graphics Mill Code Samples XML Catalog