# `Linocut.Frames`
[🔗](https://github.com/jaman/cauldron/blob/v0.2.2/linocut/lib/linocut/frames.ex#L1)

Frames of one animation, lined up and written as a `.pic`.

`align/2` puts a set of pictures on one canvas, each standing on the same floor and
lined up by the body above it rather than by its own box, so a stride that reaches wide
does not shift the whole figure sideways. `to_pic/3` reduces them to one shared palette
and gives the `.pic` text.

# `align`

```elixir
@spec align([FrenchCurve.Raster.t()], keyword()) :: [FrenchCurve.Raster.t()]
```

Every picture cropped to what it holds and placed on one canvas.

## Options

  * `:alpha` — the alpha at or above which a pixel counts. Default `16`
  * `:anchor` — the fraction of a picture's height, from the top, whose middle the
    pictures are lined up by. Default `0.35`, which is the head and chest of a figure

# `to_pic`

```elixir
@spec to_pic([FrenchCurve.Raster.t()], pos_integer(), non_neg_integer()) :: String.t()
```

The `.pic` text for `frames`, all reduced to one palette of at most `colours` entries.

A pixel whose alpha is under `alpha` is written as a clear cell.

---

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