Add Alpha Channel (Memory Friendly)

Channels Drawing Pipeline

Generates an elliptical alpha channel and applies it to the source image using memory-friendly Pipeline API.

Сode Snippet

// reader --------------->  setAlpha  --->  writer
// alpha  --->  drawer  ---/
using (var reader = ImageReader.Create("Chicago.jpg"))
using (var alpha = new ImageGenerator(reader.Width, reader.Height, PixelFormat.Format8bppGrayscale, new GrayscaleColor(0)))
using (var drawer = new Drawer())
using (var setAlpha = new SetAlpha())
using (var writer = ImageWriter.Create("AddAlphaChannelMemoryFriendly.png"))
{
    drawer.Draw += (sender, e) =>
    {
        e.Graphics.FillEllipse(
            new SolidBrush(new GrayscaleColor(255)),
            0,
            0,
            reader.Width,
            reader.Height);
    };

    setAlpha.AlphaSource = alpha + drawer;

    Pipeline.Run(reader + setAlpha + writer);
}

Input

Chicago.jpg

Output

AddAlphaChannelMemoryFriendly.png

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