# Color Adjust Processor
## Overview
The **Color Adjust Processor** applies adjustments to the image's overall color properties. It offers control over brightness, contrast, saturation, and hue, allowing fine-tuning of the image appearance. This processor works on the entire image or on a specified area via an optional mask.
---
## Example Usage
```yaml
- processor:
processor: "color_adjust"
inputs:
source: "input/image.png" # Input image (RGBA)
mask: "input/mask.png" # (Optional) Grayscale mask to limit the adjustments
params:
brightness: 1.0 # Multiplier for brightness (e.g., 1.0 = no change)
contrast: 1.0 # Multiplier for contrast (e.g., 1.0 = no change)
saturation: 1.0 # Multiplier for saturation (e.g., 1.0 = no change)
hue: 0.0 # Hue adjustment in degrees (e.g., 0 = no change)
gamma: 1.0 # Gamma correction value (e.g., 1.0 = no change)
outputs:
target: "output/adjusted.png" # Output PNG image after color adjustments
```
---
## Inputs
| **Key** | **Required** | **Description** |
| -------- | -----------: | ----------------------------------------------------------------------------- |
| `source` | **Yes** | Filepath to the input image (RGBA). |
| `mask` | | Filepath to a grayscale mask image to restrict adjustments to specific areas. |
---
## Params
| **Key** | **Type** | **Default** | **Description** |
| ------------ | -------- | ----------- | ------------------------------------------------------------------------------------------------- |
| `brightness` | `float` | `1.0` | Multiplier for brightness. Values greater than 1.0 brighten the image; less than 1.0 darken it. |
| `contrast` | `float` | `1.0` | Multiplier for contrast adjustment. Higher values increase contrast; lower values reduce it. |
| `saturation` | `float` | `1.0` | Multiplier for saturation. Values above 1.0 enhance color intensity; below 1.0 desaturate colors. |
| `hue` | `float` | `0.0` | Hue shift in degrees. Positive or negative values rotate the color wheel. |
| `gamma` | `float` | `1.0` | Gamma correction value. Adjusts luminance non-linearly to improve contrast and detail visibility. |
---
## Outputs
| **Key** | **Required** | **Description** |
| -------- | -----------: | -------------------------------------------------------------------- |
| `target` | **Yes** | Filepath to the output PNG image with the applied color adjustments. |
---
## Processing Details
1. **Input Loading:**
- Load the source image in RGBA.
- Optionally load a grayscale mask if provided, to restrict adjustments to specific regions.
2. **Color Adjustment Application:**
- **Brightness:** Multiply pixel values by the brightness factor.
- **Contrast:** Adjust the contrast by scaling the difference of each pixel from the midpoint.
- **Saturation:** Modify the saturation by converting to an appropriate color space (e.g., HSL) and scaling the saturation channel.
- **Hue:** Shift the hue by rotating the color wheel in the chosen color space.
- **Gamma Correction:** Apply gamma adjustment to non-linearly map luminance values.
3. **Mask Handling (Optional):**
- If a mask is provided, limit the adjustments to regions where the mask has non-zero values.
4. **Output Generation:**
- Generate the processed image with the adjustments applied.
- Save the final image as a PNG in RGBA format to the specified output target.