diff --git a/Fonderie/crapulator.c b/Fonderie/crapulator.c index 47cfca7b..4e11dca6 100644 --- a/Fonderie/crapulator.c +++ b/Fonderie/crapulator.c @@ -49,12 +49,13 @@ fimg_destroy(&img); return 0; } /* -------------------------------------------------------------- */ -static int insitu_filtre3x3(FloatImg *pimg) +static int insitu_filtre3x3(FloatImg *pimg, int typef) { FloatImg img; int retval; +FimgFilter3x3 *pfiltre; -FimgFilter3x3 filtre = { +FimgFilter3x3 lowpass = { { 1.0, 2.0, 1.0, 2.0, 4.0, 2.0, @@ -63,8 +64,29 @@ FimgFilter3x3 filtre = { 16.0, 0.0 }; +FimgFilter3x3 hipass = { + { + -1.0, -1.0, -1.0, + -1.0, 9.0, -1.0, + -1.0, -1.0, -1.0, + }, + 1.0, 0.0 + }; + + +switch (typef) { + case 0: pfiltre = &lowpass; break; + case 1: pfiltre = &hipass; break; + default: + fprintf(stderr, "%s: bad filter number %d\n", + __func__, typef); + return -6; + break; + } + fimg_clone(pimg, &img, 0); -retval = fimg_filter_3x3(pimg, &img, &filtre); + +retval = fimg_filter_3x3(pimg, &img, pfiltre); if (retval) { fprintf(stderr, "%s error %d on filter\n", __func__, retval); exit(1); @@ -168,7 +190,7 @@ switch (idFx) { (void)fimg_killborders(image); break; case 13: - retval = insitu_filtre3x3(image); + retval = insitu_filtre3x3(image, 0); break; case 14: retval = desaturate(image); @@ -186,6 +208,9 @@ switch (idFx) { case 18: retval = upside_down(image); break; + case 19: + retval = insitu_filtre3x3(image, 1); + break; /* here are the glitches */ case 24: /* experiment ! */ @@ -213,13 +238,33 @@ count++; return retval; } +/* -------------------------------------------------------------- */ +typedef struct { + int id; + char *name; + int ipar; + float fpar; + int flags; + } Crapulor; + + + /* -------------------------------------------------------------- */ char * crap_name_from_number(int num) { switch (num) { case 0: return "none"; + case 1: return "cos01"; + case 2: return "cos010"; + case 6: return "killcola"; + case 7: return "colmixa"; case 8: return "ctr2x2"; + case 9: return "classif0"; + case 10: return "binariz"; + case 11: return "trinariz"; case 13: return "fltr3x3"; + case 14: return "desatur"; + case 18: return "updown"; }