---
title: "Class ProductRenderer | Customer's Canvas On-Premises"
canonical: "https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Rendering/ProductRenderer/"
---

# Class ProductRenderer

> **Inheritance:** `System.Object` -> ProductRenderer

###### **Namespace**: [Aurigma.DesignAtoms.Rendering](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Rendering.md)

###### **Assembly**: Aurigma.DesignAtoms.dll

```csharp title="Syntax"
public class ProductRenderer : IProductRenderer
```

## Implements

* [Aurigma.DesignAtoms.Rendering.IProductRenderer](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Rendering/IProductRenderer.md)

## Inherited Members

* `System.Object.ToString`
* `System.Object.Equals(System.Object)`
* `System.Object.Equals(System.Object,System.Object)`
* `System.Object.ReferenceEquals(System.Object,System.Object)`
* `System.Object.GetHashCode`
* `System.Object.GetType`
* `System.Object.MemberwiseClone`

## Constructors

### ProductRenderer

```csharp
public ProductRenderer(IConfiguration configuration, IItemHandlerFactory itemHandlerFactory, IArtifactsRepository artifactsRepository, IStateResourcesRepository stateResourcesRepository, ICanvasBuilder canvasBuilder, IMergeUtil mergeUtil, IMd5Util md5Util, IColorManagement colorManagement, IGmColorConverter gmColorConverter, IImageLoader imageLoader, ISurfaceHandler surfaceHandler, IFontService fontService, IProductHandler productHandler, IFileCacheImageParamsReader fileCacheImageParamsReader, IRenderingColorSettingsFactory renderingColorSettingsFactory, IWatermarkItemsBuilder watermarkItemsBuilder, IRepositoryImageParamsReaderFactory repositoryImageParamsReaderFactory, IRenderingNotifier renderingNotifier = null)
```

## Methods

### RenderThumbnail

```csharp
public Task<string> RenderThumbnail(Product product, RenderingConfig renderingConfig, int surfaceIndex, Size size)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Model.Product](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Product.md) | *product* |  |
| [Aurigma.DesignAtoms.Configuration.RenderingConfig.RenderingConfig](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Configuration.RenderingConfig/RenderingConfig.md) | *renderingConfig* |  |
| `System.Int32` | *surfaceIndex* |  |
| `System.Drawing.Size` | *size* |  |

##### Returns

`System.Threading.Tasks.Task<System.String>`

### RenderItems

```csharp
public Task<RectangleF> RenderItems(Stream stream, Item[] items, RenderingConfig renderingConfig)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `System.IO.Stream` | *stream* |  |
| `Aurigma.DesignAtoms.Model.Items.Item[]` | *items* |  |
| [Aurigma.DesignAtoms.Configuration.RenderingConfig.RenderingConfig](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Configuration.RenderingConfig/RenderingConfig.md) | *renderingConfig* |  |

##### Returns

`System.Threading.Tasks.Task<System.Drawing.RectangleF>`

### RenderHiRes

```csharp
public Task RenderHiRes(Func<Stream> getOutputStreamCallback, Product product, RenderingConfig renderingConfig = null, object notificationState = null)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `System.Func<System.IO.Stream>` | *getOutputStreamCallback* |  |
| [Aurigma.DesignAtoms.Model.Product](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Product.md) | *product* |  |
| [Aurigma.DesignAtoms.Configuration.RenderingConfig.RenderingConfig](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Configuration.RenderingConfig/RenderingConfig.md) | *renderingConfig* |  |
| `System.Object` | *notificationState* |  |

##### Returns

`System.Threading.Tasks.Task`

### RenderHiRes

```csharp
public Task RenderHiRes(Stream stream, Product product, RenderingConfig renderingConfig, object notificationState = null)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `System.IO.Stream` | *stream* |  |
| [Aurigma.DesignAtoms.Model.Product](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Product.md) | *product* |  |
| [Aurigma.DesignAtoms.Configuration.RenderingConfig.RenderingConfig](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Configuration.RenderingConfig/RenderingConfig.md) | *renderingConfig* |  |
| `System.Object` | *notificationState* |  |

##### Returns

`System.Threading.Tasks.Task`

### RenderHiRes

```csharp
public Task<IList<string>> RenderHiRes(Product product, RenderingConfig renderingConfig, object notificationState = null)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Model.Product](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Product.md) | *product* |  |
| [Aurigma.DesignAtoms.Configuration.RenderingConfig.RenderingConfig](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Configuration.RenderingConfig/RenderingConfig.md) | *renderingConfig* |  |
| `System.Object` | *notificationState* |  |

##### Returns

`System.Threading.Tasks.Task<System.Collections.Generic.IList<System.String>>`

### RenderHiRes

```csharp
public Task<string> RenderHiRes(PrintArea printArea, RenderingConfig renderingConfig, object notificationState = null)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Model.PrintArea](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/PrintArea.md) | *printArea* |  |
| [Aurigma.DesignAtoms.Configuration.RenderingConfig.RenderingConfig](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Configuration.RenderingConfig/RenderingConfig.md) | *renderingConfig* |  |
| `System.Object` | *notificationState* |  |

##### Returns

`System.Threading.Tasks.Task<System.String>`

### RenderHiRes

```csharp
public Task RenderHiRes(Stream stream, PrintArea printArea, RenderingConfig renderingConfig, object notificationState = null)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `System.IO.Stream` | *stream* |  |
| [Aurigma.DesignAtoms.Model.PrintArea](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/PrintArea.md) | *printArea* |  |
| [Aurigma.DesignAtoms.Configuration.RenderingConfig.RenderingConfig](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Configuration.RenderingConfig/RenderingConfig.md) | *renderingConfig* |  |
| `System.Object` | *notificationState* |  |

##### Returns

`System.Threading.Tasks.Task`

### RenderHiResBitmap

```csharp
public Task<Bitmap> RenderHiResBitmap(PrintArea printArea, RenderingConfig renderingConfig, object notificationState = null)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Model.PrintArea](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/PrintArea.md) | *printArea* |  |
| [Aurigma.DesignAtoms.Configuration.RenderingConfig.RenderingConfig](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Configuration.RenderingConfig/RenderingConfig.md) | *renderingConfig* |  |
| `System.Object` | *notificationState* |  |

##### Returns

`System.Threading.Tasks.Task<Aurigma.GraphicsMill.Bitmap>`

### RenderHiResOutput

```csharp
public Task<string> RenderHiResOutput(State state, int surfaceIndex = -1, int printAreaIndex = -1, object notificationState = null)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Model.State](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/State.md) | *state* |  |
| `System.Int32` | *surfaceIndex* |  |
| `System.Int32` | *printAreaIndex* |  |
| `System.Object` | *notificationState* |  |

##### Returns

`System.Threading.Tasks.Task<System.String>`

### RenderHiResOutput

```csharp
public Task<string> RenderHiResOutput(Product product, RenderingConfig renderingConfig, int surfaceIndex = -1, int printAreaIndex = -1, int? containerIndex = null, object notificationState = null)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Model.Product](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Product.md) | *product* |  |
| [Aurigma.DesignAtoms.Configuration.RenderingConfig.RenderingConfig](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Configuration.RenderingConfig/RenderingConfig.md) | *renderingConfig* |  |
| `System.Int32` | *surfaceIndex* |  |
| `System.Int32` | *printAreaIndex* |  |
| `System.Nullable<System.Int32>` | *containerIndex* |  |
| `System.Object` | *notificationState* |  |

##### Returns

`System.Threading.Tasks.Task<System.String>`

### RenderProofImage

```csharp
public Task<string> RenderProofImage(State state, int surfaceIndex = 0, int previewIndex = 0, Size? maxSize = null)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Model.State](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/State.md) | *state* |  |
| `System.Int32` | *surfaceIndex* |  |
| `System.Int32` | *previewIndex* |  |
| `System.Nullable<System.Drawing.Size>` | *maxSize* |  |

##### Returns

`System.Threading.Tasks.Task<System.String>`

### RenderProofImage

```csharp
public Task<string> RenderProofImage(Product product, RenderingConfig renderingConfig, int surfaceIndex = 0, int mockupIndex = 0, Size? maxSize = null, ResizeMode? resizeMode = null, bool isThumbnail = false, ResizeInterpolationMode? interpolationMode = null)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Model.Product](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Product.md) | *product* |  |
| [Aurigma.DesignAtoms.Configuration.RenderingConfig.RenderingConfig](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Configuration.RenderingConfig/RenderingConfig.md) | *renderingConfig* |  |
| `System.Int32` | *surfaceIndex* |  |
| `System.Int32` | *mockupIndex* |  |
| `System.Nullable<System.Drawing.Size>` | *maxSize* |  |
| `System.Nullable<Aurigma.GraphicsMill.Transforms.ResizeMode>` | *resizeMode* |  |
| `System.Boolean` | *isThumbnail* |  |
| `System.Nullable<Aurigma.DesignAtoms.Configuration.RenderingConfig.ResizeInterpolationMode>` | *interpolationMode* |  |

##### Returns

`System.Threading.Tasks.Task<System.String>`

### RenderProof

```csharp
public Task RenderProof(Stream stream, Surface surface, RenderingConfig renderingConfig, Size? maxSize, ResizeMode? resizeMode)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `System.IO.Stream` | *stream* |  |
| [Aurigma.DesignAtoms.Model.Surface](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Surface.md) | *surface* |  |
| [Aurigma.DesignAtoms.Configuration.RenderingConfig.RenderingConfig](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Configuration.RenderingConfig/RenderingConfig.md) | *renderingConfig* |  |
| `System.Nullable<System.Drawing.Size>` | *maxSize* |  |
| `System.Nullable<Aurigma.GraphicsMill.Transforms.ResizeMode>` | *resizeMode* |  |

##### Returns

`System.Threading.Tasks.Task`

### RenderProof

```csharp
public Task<string> RenderProof(Surface surface, RenderingConfig renderingConfig, Size? maxSize, ResizeMode? resizeMode)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Model.Surface](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Surface.md) | *surface* |  |
| [Aurigma.DesignAtoms.Configuration.RenderingConfig.RenderingConfig](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Configuration.RenderingConfig/RenderingConfig.md) | *renderingConfig* |  |
| `System.Nullable<System.Drawing.Size>` | *maxSize* |  |
| `System.Nullable<Aurigma.GraphicsMill.Transforms.ResizeMode>` | *resizeMode* |  |

##### Returns

`System.Threading.Tasks.Task<System.String>`

### RenderProof

```csharp
public Task RenderProof(Stream stream, Surface surface, PrintArea printArea, RenderingConfig renderingConfig, Size? maxSize, ResizeMode? resizeMode)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `System.IO.Stream` | *stream* |  |
| [Aurigma.DesignAtoms.Model.Surface](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Surface.md) | *surface* |  |
| [Aurigma.DesignAtoms.Model.PrintArea](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/PrintArea.md) | *printArea* |  |
| [Aurigma.DesignAtoms.Configuration.RenderingConfig.RenderingConfig](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Configuration.RenderingConfig/RenderingConfig.md) | *renderingConfig* |  |
| `System.Nullable<System.Drawing.Size>` | *maxSize* |  |
| `System.Nullable<Aurigma.GraphicsMill.Transforms.ResizeMode>` | *resizeMode* |  |

##### Returns

`System.Threading.Tasks.Task`

### RenderProof

```csharp
public Task RenderProof(Stream stream, Surface surface, Container container, RenderingConfig renderingConfig, Size? maxSize, ResizeMode? resizeMode)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `System.IO.Stream` | *stream* |  |
| [Aurigma.DesignAtoms.Model.Surface](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Surface.md) | *surface* |  |
| [Aurigma.DesignAtoms.Model.Container](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Container.md) | *container* |  |
| [Aurigma.DesignAtoms.Configuration.RenderingConfig.RenderingConfig](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Configuration.RenderingConfig/RenderingConfig.md) | *renderingConfig* |  |
| `System.Nullable<System.Drawing.Size>` | *maxSize* |  |
| `System.Nullable<Aurigma.GraphicsMill.Transforms.ResizeMode>` | *resizeMode* |  |

##### Returns

`System.Threading.Tasks.Task`

### RenderProof

```csharp
public Task RenderProof(Stream stream, Surface surface, PrintArea printArea, Container container, RenderingConfig renderingConfig, Size? maxSize, ResizeMode? resizeMode)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `System.IO.Stream` | *stream* |  |
| [Aurigma.DesignAtoms.Model.Surface](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Surface.md) | *surface* |  |
| [Aurigma.DesignAtoms.Model.PrintArea](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/PrintArea.md) | *printArea* |  |
| [Aurigma.DesignAtoms.Model.Container](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Container.md) | *container* |  |
| [Aurigma.DesignAtoms.Configuration.RenderingConfig.RenderingConfig](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Configuration.RenderingConfig/RenderingConfig.md) | *renderingConfig* |  |
| `System.Nullable<System.Drawing.Size>` | *maxSize* |  |
| `System.Nullable<Aurigma.GraphicsMill.Transforms.ResizeMode>` | *resizeMode* |  |

##### Returns

`System.Threading.Tasks.Task`

### RenderProof

```csharp
public Task RenderProof(Stream stream, Product product, RenderingConfig renderingConfig, Size? maxSize = null, ResizeMode? resizeMode = null, ResizeInterpolationMode? interpolationMode = null, IEnumerable<int> surfaceIndexes = null)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `System.IO.Stream` | *stream* |  |
| [Aurigma.DesignAtoms.Model.Product](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Product.md) | *product* |  |
| [Aurigma.DesignAtoms.Configuration.RenderingConfig.RenderingConfig](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Configuration.RenderingConfig/RenderingConfig.md) | *renderingConfig* |  |
| `System.Nullable<System.Drawing.Size>` | *maxSize* |  |
| `System.Nullable<Aurigma.GraphicsMill.Transforms.ResizeMode>` | *resizeMode* |  |
| `System.Nullable<Aurigma.DesignAtoms.Configuration.RenderingConfig.ResizeInterpolationMode>` | *interpolationMode* |  |
| `System.Collections.Generic.IEnumerable<System.Int32>` | *surfaceIndexes* |  |

##### Returns

`System.Threading.Tasks.Task`

### RenderWatermarkToStorageId

```csharp
public Task<WatermarkRenderingResult> RenderWatermarkToStorageId(RenderingConfig renderingConfig, WatermarkConfig watermarkConfig, int width, int height)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Configuration.RenderingConfig.RenderingConfig](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Configuration.RenderingConfig/RenderingConfig.md) | *renderingConfig* |  |
| [Aurigma.DesignAtoms.Configuration.WatermarkConfig](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Configuration/WatermarkConfig.md) | *watermarkConfig* |  |
| `System.Int32` | *width* |  |
| `System.Int32` | *height* |  |

##### Returns

`System.Threading.Tasks.Task<Aurigma.DesignAtoms.Rendering.WatermarkRenderingResult>`

### RenderWatermark

```csharp
public Task<string> RenderWatermark(RenderingConfig renderingConfig, WatermarkConfig watermarkConfig, float width, float height, bool upscaleEnabled = true)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Configuration.RenderingConfig.RenderingConfig](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Configuration.RenderingConfig/RenderingConfig.md) | *renderingConfig* |  |
| [Aurigma.DesignAtoms.Configuration.WatermarkConfig](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Configuration/WatermarkConfig.md) | *watermarkConfig* |  |
| `System.Single` | *width* |  |
| `System.Single` | *height* |  |
| `System.Boolean` | *upscaleEnabled* |  |

##### Returns

`System.Threading.Tasks.Task<System.String>`

## Fields

### ProofImageDpi

```csharp
public const float ProofImageDpi = 72F
```

### ProofImageDefaultMaxSize

```csharp
public const int ProofImageDefaultMaxSize = 500
```

### ProofImageColorSpace

```csharp
public static readonly ColorSpace ProofImageColorSpace
```

### ThumbnailDpi

```csharp
public static readonly float ThumbnailDpi
```

### ThumbnailColorSpace

```csharp
public static readonly ColorSpace ThumbnailColorSpace
```

### ThumbnailBackgroundColor

```csharp
public static readonly Color ThumbnailBackgroundColor
```

### ThumbnailFileFormat

```csharp
public static readonly FileFormat ThumbnailFileFormat
```
