/* * fimg-2gray.c */ #include #include #include #include "string.h" #include "../floatimg.h" extern int verbosity; /* must be declared around main() */ /* --------------------------------------------------------------------- */ /* * floating imgs MUST be allocated before calling this func. */ int fimg_mk_gray_from(FloatImg *src, FloatImg*dst, int k) { float kr, kg, kb, kdiv; int nbb, foo; kr = kg = kb = 1.0; /* canonic random values */ kdiv = kr + kg + kb; /* we must check the validity of our parameters */ if (FIMG_TYPE_RGB != src->type) { fprintf(stderr, "%s : bad src type %d on %p\n", __func__, src->type, src); return -8; } if (FIMG_TYPE_GRAY != dst->type) { fprintf(stderr, "%s : bad dst type %d on %p\n", __func__, dst->type, dst); return -9; } /* entering the main processing loop */ nbb = src->width * src->height; for (foo=0; fooR[foo] = ( (src->R[foo] * kr) + (src->G[foo] * kg) + (src->B[foo] * kb) ) / kdiv; } return 0; } /* --------------------------------------------------------------------- */