---
title: "ChannelSplitter Class"
canonical: https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_ChannelSplitter.htm
product: "Graphics Mill"
---

# ChannelSplitter Class
 
Represents the base class for classes that separate an image by color channels.
 
**Namespace:** [Aurigma.GraphicsMill](https://www.graphicsmill.com/docs/gm/N_Aurigma_GraphicsMill.htm.md)
 **Assembly:** Aurigma.GraphicsMill (in Aurigma.GraphicsMill.dll)
 
## Syntax
  
```csharp
public class ChannelSplitter : PipelineElement
```
 
## Remarks
  
The result of channels separation is a number of grayscale images that are used to create printing plates. The number of images depends on the source image color space. You can use one of the following descendant classes, which allow the separation of images by channels:
 
- [RgbChannelSplitter](https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_RgbChannelSplitter.htm.md) is specified to work with RGB images.
- [CmykChannelSplitter](https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_CmykChannelSplitter.htm.md) is specified to work with CMYK images.
- [GrayscaleChannelSplitter](https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_GrayscaleChannelSplitter.htm.md) is specified to work with grayscale images containing the alpha channel.

The pixel format of the resulting image depends on the source image pixel format. The resulting image is [Format8bppGrayscale](https://www.graphicsmill.com/docs/gm/P_Aurigma_GraphicsMill_PixelFormat_Format8bppGrayscale.htm.md) if the source bitmap is not extended, and [Format16bppGrayscale](https://www.graphicsmill.com/docs/gm/P_Aurigma_GraphicsMill_PixelFormat_Format16bppGrayscale.htm.md) otherwise.
 
## Examples
  
The following code separates a CMYK image by color channels:
 
```csharp
using (var reader = new TiffReader(@"Images\cmyk.tif"))
using (var splitter = new CmykChannelSplitter())
{
    splitter.C = new TiffWriter(@"Images\Output\Cmyk_test_Channel_C.tif");
    splitter.M = new TiffWriter(@"Images\Output\Cmyk_test_Channel_M.tif");
    splitter.Y = new TiffWriter(@"Images\Output\Cmyk_test_Channel_Y.tif");
    splitter.K = new TiffWriter(@"Images\Output\Cmyk_test_Channel_K.tif");
    Pipeline.Run(reader + splitter);
}
```
 
## Inheritance Hierarchy
  
- System.Object
    - [Aurigma.GraphicsMill.PipelineElement](https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_PipelineElement.htm.md)
        - Aurigma.GraphicsMill.ChannelSplitter
            - [Aurigma.GraphicsMill.RgbChannelSplitter](https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_RgbChannelSplitter.htm.md)
            - [Aurigma.GraphicsMill.CmykChannelSplitter](https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_CmykChannelSplitter.htm.md)
            - [Aurigma.GraphicsMill.GrayscaleChannelSplitter](https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_GrayscaleChannelSplitter.htm.md)
            - [Aurigma.GraphicsMill.LabChannelSplitter](https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_LabChannelSplitter.htm.md)
 
## Thread Safety
 Static members of this type are not safe for multi-threaded operations. Instance members of this type are not safe for multi-threaded operations.
   
## See Also

### Reference

- [ChannelSplitter Members](https://www.graphicsmill.com/docs/gm/AllMembers_T_Aurigma_GraphicsMill_ChannelSplitter.htm.md)
- [Aurigma.GraphicsMill Namespace](https://www.graphicsmill.com/docs/gm/N_Aurigma_GraphicsMill.htm.md)

### Manual

- [Reading and Writing Channels](https://www.graphicsmill.com/docs/gm/reading-and-writing-channels.htm.md)
