Drop-in compatibility
For `spng_compat` to become drop-in compatible the following additional features/functions have to be implemented on top of `libspng`:
* [ ] Error reporting with setjmp()
* [ ] Reading from a `FILE*`
* [ ] (Alpha) filler bytes (`png_set_filler()`).
* [ ] Various alpha blending modes (`png_set_alpha_mode()`).
* [ ] `png_get_pixels_per_inch()`, `png_get_x/y_offset_inches()` and fixed-point equivalents.
* [ ] Extensions: pCAL, sCAL, these require parsing of text.
* [ ] `png_set_sig_bytes()`, `png_sig_cmp()`.
* [ ] low-level PNG writing functions: `png_write_sig()`, `png_write_chunk()`, etc.
* [ ] `png_set_shift()`
* [ ] `png_set_invert_mono()`
* [ ] `png_set_compression_level()` and similar functions.
* [ ] `png_get_channels()`
* [ ] `png_set_rows()`
* [ ] `png_get/set_image_width/height/bit_depth/color_type/etc()`
* [ ] `png_get_(x/y)_pixels_per_meter()`
* [ ] `png_get_pixel_aspect_ratio(_fixed)()`
* [ ] `png_get_(x/y)_offset_(pixels/microns)()`
* [ ] `png_get_copyright()`, `png_get_header_ver()`, `png_get_header_version()`, `png_get_libpng_ver()`.
* [ ] `png_permit_mng_features()`
* [ ] `png_set_user_limits()`, etc.
* [ ] `png_get_pHYs_dpi()`
issue