added a second killcolors function

This commit is contained in:
Tonton Th 2020-02-07 20:09:03 +01:00
parent 622d011424
commit e761120787
4 changed files with 38 additions and 9 deletions

3
.gitignore vendored
View File

@ -5,7 +5,6 @@ lib/*.fimg
lib/*.png lib/*.png
lib/*.gif lib/*.gif
funcs/*.o
*.a *.a
gmon.out gmon.out
@ -26,7 +25,9 @@ doc/*.ilg
doc/*.ind doc/*.ind
funcs/t funcs/t
funcs/*.o
funcs/*.png funcs/*.png
funcs/*.gif
scripts/*.fimg scripts/*.fimg
scripts/*.pnm scripts/*.pnm

View File

@ -78,6 +78,7 @@ int fimg_maximum(FloatImg *a, FloatImg *b, FloatImg *d);
/* 'sfx0' module */ /* 'sfx0' module */
int fimg_killcolors_a(FloatImg *fimg, float fval); int fimg_killcolors_a(FloatImg *fimg, float fval);
int fimg_killcolors_b(FloatImg *fimg, float fval);
/* PNM files module */ /* PNM files module */

View File

@ -22,14 +22,32 @@ if (FIMG_TYPE_RGB != fimg->type) {
} }
nbpix = fimg->width * fimg->height; nbpix = fimg->width * fimg->height;
for (foo=0; foo<nbpix; foo++) { for (foo=0; foo<nbpix; foo++) {
if (fimg->R[foo] > fimg->G[foo]) if (fimg->R[foo] > fimg->G[foo])
fimg->B[foo] = fimg->R[foo]; fimg->B[foo] = fimg->R[foo];
else else
fimg->B[foo] = fimg->G[foo]; fimg->B[foo] = fimg->G[foo];
}
return 0;
}
/* --------------------------------------------------------------------- */
int fimg_killcolors_b(FloatImg *fimg, float fval)
{
int nbpix, foo;
if (FIMG_TYPE_RGB != fimg->type) {
fprintf(stderr, "%s: bad src type %d on %p\n", __func__,
fimg->type, fimg);
return -8;
}
nbpix = fimg->width * fimg->height;
for (foo=0; foo<nbpix; foo++) {
if (fimg->R[foo] > fimg->B[foo])
fimg->G[foo] = fimg->R[foo];
else
fimg->G[foo] = fimg->B[foo];
} }
return 0; return 0;

View File

@ -18,14 +18,23 @@ int essai_sfx0(char *infile)
FloatImg fimg; FloatImg fimg;
int foo; int foo;
fimg_create(&fimg, 512, 512, FIMG_TYPE_RGB); if (NULL != infile) {
fprintf(stderr, "loading %s\n", infile);
fimg_create_from_dump(infile, &fimg);
}
else {
fimg_create(&fimg, 512, 512, FIMG_TYPE_RGB);
fimg_draw_something(&fimg);
}
fimg_draw_something(&fimg);
foo = fimg_save_as_pnm(&fimg, "something.pnm", 0); foo = fimg_save_as_pnm(&fimg, "something.pnm", 0);
foo = fimg_killcolors_a(&fimg, 0.0); foo = fimg_killcolors_a(&fimg, 0.0);
foo = fimg_save_as_pnm(&fimg, "colorskilled-a.pnm", 0);
foo = fimg_killcolors_b(&fimg, 0.0);
foo = fimg_save_as_pnm(&fimg, "colorskilled-b.pnm", 0);
foo = fimg_save_as_pnm(&fimg, "colorskilled.pnm", 0);
return 0; return 0;
} }
@ -125,7 +134,7 @@ int foo;
puts("++++++++++++++++++++++++++++++++"); puts("++++++++++++++++++++++++++++++++");
foo = essai_sfx0(NULL); foo = essai_sfx0("03384.fimg");
return 0; return 0;
} }