README.md

Imagineer
=========

Image parsing in Elixir.

Currently Imagineer only supports PNGs. To load an image, create a new `Imagineer.Image` and pass it to the load function. Once the image is processed (or the raw binary is placed in the `raw` field by some other means), passing it to `process` will parse all of its data.

```elixir
alias Imagineer.Image
image = %Image{uri: "./test/support/images/alpaca.png"} 
  |> Image.load
  |> Image.process
# =>
#  %Imagineer.Image{
#    alias: nil,
#    attributes: %{
#      color_type: 2,
#      compression: 0,
#      filter_method: 0,
#      interface_method: 0,
#      pixel_dimensions: {
#        5669,
#        5669,
#       :meter
#      }
#    },
#    bit_depth: 8,
#    color_format: :rgb8,
#    content: <<120, 1, 141, 189, 7, 148, 92, 213, 149, 254, 123, 99, 229, 208, 213, 57, 75, 106, 229, 0, 66, 66, 18, 32, 178, 49, 57, 216, 132, 193, 9, 99, 96, 108, 6, 131, 3, 14, 51, 255, 97, 198, 30, 71, 156, ...>>,
#    format: :png,
#    height: 96,
#    mask: nil,
#    raw: <<137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 96, 0, 0, 0, 96, 8, 2, 0, 0, 0, 109, 250, 224, 111, 0, 0, 12, 70, 105, 67, 67, 80, ...>>,
#    uri: "./test/support/images/alpaca.png",
#    width: 96}
```