# CameraSettings

<Badge tone="type">record · sealed</Badge> <Badge>thread-safe</Badge>

```csharp
namespace AR51.Net;

public sealed record CameraSettings(double ExposureMicroseconds, double Gain, double Gamma, int Contrast, int Saturation, int GainRed, int GainGreen, int GainBlue, bool Rotate180, bool ExcludedFromTracking);
```

A camera's image settings. Change values with `with` and pass the result to [`ICameraClient.SetSettingsAsync`](/docs/sdk-api/csharp-api/classes/icameraclient/#setsettingsasync).

:::tip[How-to]
This page is **reference** (facts only). For a walkthrough with a complete sample, see the [Cameras guide](/docs/csharp-api/cameras/).
:::

## Properties

Positional record: set them in the constructor, read them as properties, and copy with changes using `with`.

<div className="apiPropTable apiTable">

| Property | Type | Description |
|---|---|---|
| `ExposureMicroseconds` | `double` | Exposure time, in microseconds. |
| `Gain` | `double` | Overall gain. |
| `Gamma` | `double` | Gamma correction. |
| `Contrast` | `int` | Contrast. |
| `Saturation` | `int` | Color saturation. |
| `GainRed` | `int` | Red gain, for color balance. |
| `GainGreen` | `int` | Green gain, for color balance. |
| `GainBlue` | `int` | Blue gain, for color balance. |
| `Rotate180` | `bool` | Turn the image upside down, for a camera mounted upside down. |
| `ExcludedFromTracking` | `bool` | Leave this camera out of tracking, for example while it is faulty. |

</div>

## See also

- [Cameras guide](/docs/csharp-api/cameras/) — walkthrough with a complete, compiled sample
- [Class index](/docs/sdk-api/csharp-api/classes/) — every AR51.Net type
- [Data conventions, threading and errors](/docs/csharp-api/conventions/)
