Feature/formats/resizing

I can't think of any use case in which you would need to change the format attributes on the fly. In fact, doing that would result in having images with different "formats" under the same format (unless we reformat all previously formatted images).

At first glance having an `init` with many parameters looks uncomfortable but if we order the parameters right and give them sensible default values it might not be that a problem.

So I'm fine with the `struct`.