# `Astral.Image`
[🔗](https://github.com/elixir-volt/astral/blob/v0.7.0/lib/astral/image.ex#L1)

Build-time optimized images for Astral pages, layouts, and Markdown content.

Calls to `get_image/1` and `get_picture/1` normalize local source images,
compute hashed output paths, register transforms for the post-render image
builder, and return render-ready image data.

# `get_image`

```elixir
@spec get_image(keyword() | map()) :: Astral.Image.Transform.t()
```

Return an optimized image result for the current render.

# `get_image`

```elixir
@spec get_image(Astral.Site.t(), keyword() | map()) :: Astral.Image.Transform.t()
```

Return an optimized image result for a site.

# `get_picture`

```elixir
@spec get_picture(keyword() | map()) :: %{
  fallback: Astral.Image.Transform.t(),
  sources: list()
}
```

Return fallback and source-set results for a responsive picture.

# `get_picture`

```elixir
@spec get_picture(Astral.Site.t(), keyword() | map()) :: %{
  fallback: Astral.Image.Transform.t(),
  sources: list()
}
```

Return fallback and source-set results for a responsive picture in a site.

# `image?`

```elixir
@spec image?(String.t()) :: boolean()
```

Return true when a path looks like a supported local image.

# `metadata`

```elixir
@spec metadata(String.t() | Astral.Image.Source.t()) :: Astral.Image.Metadata.t()
```

Return source metadata for an image in the current render context.

# `metadata`

```elixir
@spec metadata(Astral.Site.t(), String.t() | Astral.Image.Source.t()) ::
  Astral.Image.Metadata.t()
```

Return source metadata for an image in a site.

---

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