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