# nri file reader

## about

common/nori provides structs and decoders for nori file

usage:

```
import (
  "log"
  "git.tuxpa.in/a/gotagonist/common/nori"
)
func main() {
  n, err := nori.FromFile(filename)
  if err != nil {
  	log.Panicln("decode: %s", err)
  }
  // uses apng encoder/decoder from https://gitlab.com/gfxlabs/gfximg
  animations, err := n.RenderAnimations(n)
  if err != nil {
  	log.Panicln("render: %s", err)
  }
  // each animation has slice of frames
  // each frame contains an image.Image, if another format is needed
  // internally they are stored as &image.NRGBA64{}
  log.Println(animations[0].Frames[])
}
```

## cory

cmd/cory is command line util for working with nori files

get a zip file of animations from a nori file

usage: `./cory -d -f=filename.nri -o=output.zip`

optionally, use webserver

start: `./cory -serve`

example with curl: `curl -X POST --data-binary "@filename.nri" localhost:3333/animations --output output.zip`

### building cory

```
make cory
```


### docker

oh yeah there's also a docker image for cory lol

```
make docker
```

and to run server

```
make server-run
```
