Todo List

File io_png.c

handle lossless 16bit data

internally handle RGB/gray conversion in io_png_read_raw()

handle deinterlacing as a libpng transform function

Global io_png_read_raw (const char *fname, size_t *nxp, size_t *nyp, size_t *ncp, int png_transform, int dtype)
don't loose 16bit info

Global io_png_read_u8 (const char *fname, size_t *nxp, size_t *nyp, size_t *ncp)
don't downscale 16bit images.

Global io_png_write_f32 (const char *fname, const float *data, size_t nx, size_t ny, size_t nc)
handle 16bit images and flexible min/max

Global io_png_write_raw (const char *fname, const void *data, size_t nx, size_t ny, size_t nc, int dtype)
handle 16bit