# `Ollixir.Image`
[🔗](https://github.com/nshkrdotcom/ollixir/blob/main/lib/ollixir/image.ex#L1)

Image handling utilities for multimodal models.

Provides automatic loading and Base64 encoding of images from:
- File paths
- Binary data
- Already-encoded Base64 strings
- URLs (download and encode)

# `encoded_image`
[🔗](https://github.com/nshkrdotcom/ollixir/blob/main/lib/ollixir/image.ex#L15)

```elixir
@type encoded_image() :: String.t()
```

# `image_input`
[🔗](https://github.com/nshkrdotcom/ollixir/blob/main/lib/ollixir/image.ex#L14)

```elixir
@type image_input() :: binary() | String.t()
```

# `encode`
[🔗](https://github.com/nshkrdotcom/ollixir/blob/main/lib/ollixir/image.ex#L21)

```elixir
@spec encode(image_input()) :: {:ok, encoded_image()} | {:error, term()}
```

Encode an image to Base64.

# `encode!`
[🔗](https://github.com/nshkrdotcom/ollixir/blob/main/lib/ollixir/image.ex#L44)

```elixir
@spec encode!(image_input()) :: encoded_image()
```

Encode an image, raising on error.

# `encode_all`
[🔗](https://github.com/nshkrdotcom/ollixir/blob/main/lib/ollixir/image.ex#L57)

```elixir
@spec encode_all([image_input()]) :: {:ok, [encoded_image()]} | {:error, term()}
```

Encode multiple images.

Returns `{:ok, list}` if all succeed, `{:error, reason}` on first failure.

# `encode_all!`
[🔗](https://github.com/nshkrdotcom/ollixir/blob/main/lib/ollixir/image.ex#L70)

```elixir
@spec encode_all!([image_input()]) :: [encoded_image()]
```

Encode multiple images, raising on error.

# `from_url`
[🔗](https://github.com/nshkrdotcom/ollixir/blob/main/lib/ollixir/image.ex#L86)

```elixir
@spec from_url(
  String.t(),
  keyword()
) :: {:ok, encoded_image()} | {:error, term()}
```

Load and encode an image from a URL.

## Options

  * `:timeout` - Request timeout in ms (default: 30_000)
  * `:max_size` - Maximum file size in bytes (default: 20MB)

---

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