# `Image.Options.ToneCurve`
[🔗](https://github.com/elixir-image/image/blob/v0.65.0/lib/image/options/tone_map.ex#L1)

Options and option validation for `Image.apply_tone_curve/2`.

# `positive_percent`

```elixir
@type positive_percent() :: float()
```

A percent expressed as a float in the range
[0.0..1.0]

# `set_point`

```elixir
@type set_point() :: 0..100
```

Range for setting the black point and
white point. The range is 0..100 reflecting
the values of L* in the `Lab` colorspace.

# `tone_adjustment`

```elixir
@type tone_adjustment() :: -30..30
```

The adjustment range for the shadow,
midpoint and highlights.

# `tone_curve_option`

```elixir
@type tone_curve_option() ::
  {:black_point, set_point()}
  | {:white_point, set_point()}
  | {:shadow_point, positive_percent()}
  | {:mid_point, positive_percent()}
  | {:highlight_point, positive_percent()}
  | {:shadows, tone_adjustment()}
  | {:mid_points, tone_adjustment()}
  | {:highlights, tone_adjustment()}
```

Options applicable to `Image.apply_tone_curve/2`.

# `tone_curve_options`

```elixir
@type tone_curve_options() :: [tone_curve_option()] | map()
```

# `is_set_point`
*macro* 

Valid range for setting the black point and
white point.

# `is_tone_adjustment`
*macro* 

The range in which the shadows, mids and highlights
can be adjusted.

# `validate_options`

Validate the options for `Image.apply_tone_curve/2`.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
