/* * floatimg.h */ #define FIMG_VERSION 66 /* * in memory descriptor */ typedef struct { int width; int height; int type; float fval; int count; float *R, *G, *B, *A; int reserved; } FloatImg; /* * fimg file header */ typedef struct { char magic[8]; int w, h, t; } FimgFileHead; #define FIMG_TYPE_GRAY 1 #define FIMG_TYPE_RGB 3 #define FIMG_TYPE_RGBA 4 /* * core module */ int fimg_create(FloatImg *fimg, int w, int h, int t); int fimg_destroy(FloatImg *fimg); int fimg_print_version(int k); void fimg_printhead(FloatImg *h); int fimg_describe(FloatImg *head, char *txt); int fimg_fileinfo(char *fname, int *datas); int fimg_plot_rgb (FloatImg *head, int x, int y, float r, float g, float b); int fimg_clear(FloatImg *fimg); int fimg_add_rgb(FloatImg *head, int x, int y, float r, float g, float b); /* 'operats' module */ int fimg_add(FloatImg *a, FloatImg *b, FloatImg *d); int fimg_sub(FloatImg *a, FloatImg *b, FloatImg *d); int fimg_mul(FloatImg *a, FloatImg *b, FloatImg *d); /* PNM files module */ int fimg_save_as_pnm(FloatImg *head, char *fname, int notused); int fimg_load_from_pnm(char *fname, FloatImg *head, int notused); double fimg_timer_set(int whot); double fimg_timer_get(int whot); /* FIMG files module */ int fimg_fileinfos(char *fname, int *datas); int fimg_dump_to_file(FloatImg *head, char *fname, int notused); int fimg_create_from_dump(char *fname, FloatImg *head); /* mathematics oprations */ float fimg_get_maxvalue(FloatImg *head); int fimg_meanvalues(FloatImg *head, float means[4]); int fimg_to_gray(FloatImg *head); void fimg_add_cste(FloatImg *fi, float value); void fimg_drand48(FloatImg *fi, float kmul); /* various funcs modules */ int fimg_load_from_png(char *filename, FloatImg *fimg); int fimg_create_from_png(char *filename, FloatImg *fimg); int fimg_save_as_png(FloatImg *src, char *outname, int flags); int fimg_draw_something(FloatImg *fimg);