# make_image_square

Tiny helper that turns any image size into a **1:1 layout plan**: square canvas size plus left/right/top/bottom padding so you can fit without cropping.

Useful when you need the math for letterboxing / pillarboxing before you draw to a canvas, generate CSS `object-fit`-style boxes, or prep assets for Instagram and profile photos.

## Install

```elixir
def deps do
  [
    {:make_image_square, "~> 0.1.0"}
  ]
end
```

## Usage

```elixir
# 1200×800 landscape → 1200×1200 with top/bottom pads
layout = MakeImageSquare.make_image_square(1200, 800)
# canvas 1200, pad_top 200, pad_bottom 200

# Force a specific square edge (e.g. 1080 for feed posts)
ig = MakeImageSquare.make_image_square(1200, 800, canvas_size: 1080)

# Padding-only helper
pads = MakeImageSquare.square_padding(800, 1200)
```

### Modes

| Mode | Behavior |
|------|----------|
| `:fit` (default) | Entire image visible; empty bands become padding |
| `:fill` | Image covers the square; caller is expected to crop overflow |

## Notes

- This package only returns numbers. It does not decode or rewrite image files.
- Prefer not to wire up ImageMagick or Vix yourself? There is a [square photo editor you can use in a browser](https://squareimage.run) that can letterbox, blur the frame, or crop without Mix.

## License

MIT
