---
title: "PerChannelBitmapTransform Class"
canonical: https://www.graphicsmill.com/docs/gm5/T_Aurigma_GraphicsMill_Transforms_PerChannelBitmapTransform.htm
product: "Graphics Mill 5.5 for .NET"
---

This documentation is for the old version. [Go to the latest Graphics Mill docs](https://www.graphicsmill.com/docs/gm/)

# PerChannelBitmapTransform Class
 
This is a base class for all transforms which can be applied on separate channels.
 
**Namespace:** [Aurigma.GraphicsMill.Transforms](https://www.graphicsmill.com/docs/gm5/N_Aurigma_GraphicsMill_Transforms.htm.md)
 **Assembly:** Aurigma.GraphicsMill (in Aurigma.GraphicsMill.dll)
 
## Syntax
  
```
Public Class PerChannelBitmapTransform _Inherits MaskedBitmapTransform
```
 
```csharp
public class PerChannelBitmapTransform : MaskedBitmapTransform
```
 
## Remarks
  
Main feature of this class (and its descendants) is possibility to specify what channels should be modified with the transform. To do it you should use [Channels](https://www.graphicsmill.com/docs/gm5/P_Aurigma_GraphicsMill_Transforms_PerChannelBitmapTransform_Channels.htm.md)property. This property retrieves an array of boolean values. To mark a channel (or channels) which should be affected by the transform, set entry with appropriate index to **true**. If you set it to **false**, appropriate channel in not affected. For example, you apply transform on 24-bit RGB image. This way it has three channels, blue (at index 0), green (at index 1), and red (at index 2). Now let's assume you want to modify red and green channels, and leave blue channel as is. You should pass an array which contains three boolean values, first one should be **false**, and the rest of them should be **true**:
 
```
transform.Channels(0) = False  ' blue channel unchanged
transform.Channels(1) = True   ' green channel should be modified
transform.Channels(2) = True   ' red channel should be modified
```
 
```
transform.Channels[0] = false;  // blue channel unchanged
transform.Channels[1] = true;   // green channel should be modified
transform.Channels[2] = true;   // red channel should be modified
```
 
By default all channels are selected. Using methods [SelectAllChannels()](https://www.graphicsmill.com/docs/gm5/M_Aurigma_GraphicsMill_Transforms_PerChannelBitmapTransform_SelectAllChannels.htm.md) or [DeselectAllChannels()](https://www.graphicsmill.com/docs/gm5/M_Aurigma_GraphicsMill_Transforms_PerChannelBitmapTransform_DeselectAllChannels.htm.md) you can select or deselect all channels.
 
This class is inherited from [MaskedBitmapTransform](https://www.graphicsmill.com/docs/gm5/T_Aurigma_GraphicsMill_Transforms_MaskedBitmapTransform.htm.md), so it supports all the features provided with this class (true in-place applying support, using masks).
 
## Inheritance Hierarchy
  
- [System.Object](http://msdn2.microsoft.com/en-us/e5kfa45b)
    - [Aurigma.GraphicsMill.SyncHandler](https://www.graphicsmill.com/docs/gm5/T_Aurigma_GraphicsMill_SyncHandler.htm.md)
        - [Aurigma.GraphicsMill.UnitConverterHandler](https://www.graphicsmill.com/docs/gm5/T_Aurigma_GraphicsMill_UnitConverterHandler.htm.md)
            - [Aurigma.GraphicsMill.Transforms.BitmapTransform](https://www.graphicsmill.com/docs/gm5/T_Aurigma_GraphicsMill_Transforms_BitmapTransform.htm.md)
                - [Aurigma.GraphicsMill.Transforms.MaskedBitmapTransform](https://www.graphicsmill.com/docs/gm5/T_Aurigma_GraphicsMill_Transforms_MaskedBitmapTransform.htm.md)
                    - Aurigma.GraphicsMill.Transforms.PerChannelBitmapTransform
                        - [Aurigma.GraphicsMill.Transforms.AddNoise](https://www.graphicsmill.com/docs/gm5/T_Aurigma_GraphicsMill_Transforms_AddNoise.htm.md)
                        - [Aurigma.GraphicsMill.Transforms.ApplyLut](https://www.graphicsmill.com/docs/gm5/T_Aurigma_GraphicsMill_Transforms_ApplyLut.htm.md)
                        - [Aurigma.GraphicsMill.Transforms.Brightness](https://www.graphicsmill.com/docs/gm5/T_Aurigma_GraphicsMill_Transforms_Brightness.htm.md)
                        - [Aurigma.GraphicsMill.Transforms.BrightnessContrast](https://www.graphicsmill.com/docs/gm5/T_Aurigma_GraphicsMill_Transforms_BrightnessContrast.htm.md)
                        - [Aurigma.GraphicsMill.Transforms.Contrast](https://www.graphicsmill.com/docs/gm5/T_Aurigma_GraphicsMill_Transforms_Contrast.htm.md)
                        - [Aurigma.GraphicsMill.Transforms.Curves](https://www.graphicsmill.com/docs/gm5/T_Aurigma_GraphicsMill_Transforms_Curves.htm.md)
                        - [Aurigma.GraphicsMill.Transforms.HistogramEqualize](https://www.graphicsmill.com/docs/gm5/T_Aurigma_GraphicsMill_Transforms_HistogramEqualize.htm.md)
                        - [Aurigma.GraphicsMill.Transforms.Levels](https://www.graphicsmill.com/docs/gm5/T_Aurigma_GraphicsMill_Transforms_Levels.htm.md)
 
## Thread Safety
 Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.
   
## See Also

### Reference

- [PerChannelBitmapTransform Members](https://www.graphicsmill.com/docs/gm5/AllMembers_T_Aurigma_GraphicsMill_Transforms_PerChannelBitmapTransform.htm.md)
- [Aurigma.GraphicsMill.Transforms Namespace](https://www.graphicsmill.com/docs/gm5/N_Aurigma_GraphicsMill_Transforms.htm.md)
