# `Image.ExtendMode`
[🔗](https://github.com/elixir-image/image/blob/v0.69.0/lib/image/enum/extend_mode.ex#L1)

Defines the known modes by which an image
can be extended.

# `t`

```elixir
@type t() :: :background | :mirror | :repeat | :white | :black | :copy
```

Defines the known extend strategies.

# `known_extend_modes`

Returns the known extend modes.

# `validate_extend`

Normalizes and validates an extend mode.

### Arguments

* `extend` is any atom or string value
  in `Image.ExtendMode.known_extend_modes/0`.

### Returns

* `{:error, normalized_extend_mode}` or

* `{:error, reason}`.

### Examples

    iex> Image.Kernel.validate_extend(:black)
    {:ok, :VIPS_EXTEND_BLACK}

    iex> Image.Kernel.validate_extend(:VIPS_EXTEND_REPEAT)
    {:ok, :VIPS_EXTEND_REPEAT}

    iex> Image.Kernel.validate_extend(:unknown)
    {:error, %Image.Error{message: "Unknown extend mode. Found :unknown", reason: "Unknown extend mode. Found :unknown"}}

---

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