---
title: "Combiner Class"
canonical: https://www.graphicsmill.com/docs/gm5/T_Aurigma_GraphicsMill_Transforms_Combiner.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/)

# Combiner Class
 
This class enables you to combine two bitmaps (or its sections) with configurable combine mode, opacity, etc.
 
**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 NotInheritable Class Combiner _Inherits MaskedBitmapTransform
```
 
```csharp
public sealed class Combiner : MaskedBitmapTransform
```
 
## Remarks
  
Two bitmaps are involved into this transform:
 
1. "Upper" image, or source bitmap. Pixels are taken from it. You specify it using [SourceBitmap](https://www.graphicsmill.com/docs/gm5/P_Aurigma_GraphicsMill_Transforms_Combiner_SourceBitmap.htm.md) property.
2. "Lower" image, or destination bitmap. Pixels are combined with it. This bitmap is retrieved into [ApplyTransform(Bitmap)](https://www.graphicsmill.com/docs/gm5/M_Aurigma_GraphicsMill_Transforms_PerChannelBitmapTransform_ApplyTransform_1_fd4033ef.htm.md) method.

Bitmaps can be combined in the different way: just copying pixels from one bitmap to another, alpha blending, bitwise operations, etc. You can adjust it with [CombineMode](https://www.graphicsmill.com/docs/gm5/P_Aurigma_GraphicsMill_Transforms_Combiner_CombineMode.htm.md) property. Property [Opacity](https://www.graphicsmill.com/docs/gm5/P_Aurigma_GraphicsMill_Transforms_Combiner_Opacity.htm.md) specifies a total opacity of the [SourceBitmap](https://www.graphicsmill.com/docs/gm5/P_Aurigma_GraphicsMill_Transforms_Combiner_SourceBitmap.htm.md).
 
If you need to take source bitmap pixels only partially, you can specify rectangular area using [SourceRectangle](https://www.graphicsmill.com/docs/gm5/P_Aurigma_GraphicsMill_Transforms_Combiner_SourceRectangle.htm.md) property. In the same way you can specify an area of the destination bitmap where to put the pixels using [DestinationRectangle](https://www.graphicsmill.com/docs/gm5/P_Aurigma_GraphicsMill_Transforms_Combiner_DestinationRectangle.htm.md) property. By default both rectangles equals to the size of the source bitmap. If rectangles differs, this transform resizes a block of pixels taken from [SourceRectangle](https://www.graphicsmill.com/docs/gm5/P_Aurigma_GraphicsMill_Transforms_Combiner_SourceRectangle.htm.md) to have the same size as [DestinationRectangle](https://www.graphicsmill.com/docs/gm5/P_Aurigma_GraphicsMill_Transforms_Combiner_DestinationRectangle.htm.md). Using [InterpolationMode](https://www.graphicsmill.com/docs/gm5/P_Aurigma_GraphicsMill_Transforms_Combiner_InterpolationMode.htm.md) property you can manage interpolation quality/speed.
 
## 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.Combiner
 
## Thread Safety
 Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.
 
## Object Model

[![](https://www.graphicsmill.com/docs/gm5/Aurigma.GraphicsMill_ObjectModel_286.png)](https://www.graphicsmill.com/docs/gm5/T_Aurigma_GraphicsMill_Transforms_Combiner.htm.md)
![](https://www.graphicsmill.com/docs/gm5/ObjectModel1.png)[![](https://www.graphicsmill.com/docs/gm5/Aurigma.GraphicsMill_ObjectModel_287.png)](https://www.graphicsmill.com/docs/gm5/T_Aurigma_GraphicsMill_Bitmap.htm.md)
 
## Supported Pixel Formats

| Member Name | Description |
| --- | --- |
| **Format1bppIndexed** | 1 bit per pixel. Indexed. |
| **Format4bppIndexed** | 4 bits per pixel. Indexed. |
| **Format8bppIndexed** | 8 bits per pixel. Indexed. |
| **Format8bppGrayScale** | 8 bits per pixel. Grayscale. 8 bits are used for luminosity level. |
| **Format16bppGrayScale** | 16 bits per pixel. Grayscale. All 16 bits are used for luminosity level (extended pixel format). |
| **Format16bppAGrayScale** | 16 bits per pixel. Grayscale with alpha channel. 8 bits are used for alpha channel and other 8 bits are used for luminosity level. |
| **Format32bppAGrayScale** | 32 bits per pixel. Grayscale with alpha channel. 16 bits are used for alpha channel and other 16 bits are used for luminosity level (extended pixel format). |
| **Format16bppRgb565** | 16 bits per pixel. RGB. 5 bits each are used for the red, and blue components. 6 bits are used for green component. |
| **Format16bppRgb555** | 16 bits per pixel. RGB. 5 bits each are used for the red, green, and blue components. The rest bit is unused. |
| **Format16bppArgb1555** | 16 bits per pixel. RGB with alpha channel. 1 bit is used for the alpha component, and 5 bits each are used for the red, green, and blue components. |
| **Format24bppRgb** | 24 bits per pixel. RGB. 8 bits each are used for the red, green, and blue components. |
| **Format32bppRgb** | 32 bits per pixel. RGB. 8 bits each are used for the red, green, and blue components. The rest 8 bits are unused. |
| **Format32bppArgb** | 32 bits per pixel. RGB with alpha channel. 8 bits each are used for the alpha, red, green, and blue components. |
| **Format48bppRgb** | 48 bits per pixel. RGB. 16 bits each are used for the red, green, and blue components (extended pixel format). |
| **Format64bppArgb** | 64 bits per pixel. RGB with alpha channel. 16 bits each are used for the alpha, red, green, and blue components (extended pixel format). |
| **Format32bppCmyk** | 32 bits per pixel. CMYK. 8 bits each are used for the cyan, magenta, yellow, and black components. |
| **Format64bppCmyk** | 64 bits per pixel. CMYK. 16 bits each are used for the cyan, magenta, yellow, and black components (extended pixel format). |
| **Format80bppAcmyk** | 80 bits per pixel. CMYK with alpha channel. 16 bits each are used for the alpha, cyan, magenta, yellow, and black components (extended pixel format). |
 
## See Also

### Reference

- [Combiner Members](https://www.graphicsmill.com/docs/gm5/AllMembers_T_Aurigma_GraphicsMill_Transforms_Combiner.htm.md)
- [Aurigma.GraphicsMill.Transforms Namespace](https://www.graphicsmill.com/docs/gm5/N_Aurigma_GraphicsMill_Transforms.htm.md)

### Manual

- [Combine Modes](https://www.graphicsmill.com/docs/gm5/CombineModes.htm.md)
- [Overlaying Images](https://www.graphicsmill.com/docs/gm5/OverlayingImages.htm.md)
