FloatImg sources upgraded to version 150

This commit is contained in:
Mutah 2021-05-19 21:53:22 +02:00
parent c842ff3f54
commit 28698c4f60
15 changed files with 86 additions and 17 deletions

View File

@ -4,7 +4,7 @@
* http://la.buvette.org/photos/cumul * http://la.buvette.org/photos/cumul
*/ */
#define FIMG_VERSION 148 #define FIMG_VERSION 150
/* /*
* in memory descriptor * in memory descriptor
@ -26,7 +26,7 @@ typedef struct {
*/ */
typedef struct { typedef struct {
char magic[8]; char magic[8];
int w, h, t; int32_t w, h, t;
} FimgFileHead; } FimgFileHead;
#define MAGIC_AREA51 0xA5EA0051 #define MAGIC_AREA51 0xA5EA0051
@ -95,7 +95,6 @@ int fimg_mul_3(FloatImg *a, FloatImg *b, FloatImg *d);
int fimg_minimum(FloatImg *a, FloatImg *b, FloatImg *d); int fimg_minimum(FloatImg *a, FloatImg *b, FloatImg *d);
int fimg_maximum(FloatImg *a, FloatImg *b, FloatImg *d); int fimg_maximum(FloatImg *a, FloatImg *b, FloatImg *d);
/* funcs/filtrage.c */ /* funcs/filtrage.c */
typedef struct { typedef struct {
@ -124,6 +123,9 @@ int fimg_highlight_color(FloatImg *src, FloatImg *dst,
int fimg_binarize(FloatImg *pimg, int notused); int fimg_binarize(FloatImg *pimg, int notused);
int fimg_trinarize(FloatImg *pimg, int notused); int fimg_trinarize(FloatImg *pimg, int notused);
/* module sfx4.c */
int fimg_sfx_triplemul(FloatImg *s, FloatImg *d, int notused);
/* funcs/rotate.c module */ /* funcs/rotate.c module */
/* #coronamaison */ /* #coronamaison */
int fimg_rotate_90(FloatImg *src, FloatImg *dst, int notused); int fimg_rotate_90(FloatImg *src, FloatImg *dst, int notused);

View File

@ -15,7 +15,7 @@ COPT = -Wall -fpic -g -no-pie -DDEBUG_LEVEL=0
DEPS = ../floatimg.h Makefile DEPS = ../floatimg.h Makefile
OBJS = fimg-png.o fimg-tiff.o misc-plots.o filtrage.o utils.o \ OBJS = fimg-png.o fimg-tiff.o misc-plots.o filtrage.o utils.o \
fimg-libpnm.o rampes.o sfx0.o sfx1.o sfx2.o \ fimg-libpnm.o rampes.o sfx0.o sfx1.o sfx2.o sfx4.o \
geometry.o rotate.o fimg-openexr.o \ geometry.o rotate.o fimg-openexr.o \
equalize.o fimg-fits.o saturation.o histogram.o \ equalize.o fimg-fits.o saturation.o histogram.o \
hsv.o classif.o contour2x2.o qsortrgb.o exporter.o \ hsv.o classif.o contour2x2.o qsortrgb.o exporter.o \
@ -115,6 +115,9 @@ sfx1.o: sfx1.c $(DEPS)
sfx2.o: sfx2.c $(DEPS) sfx2.o: sfx2.c $(DEPS)
gcc $(COPT) -c $< gcc $(COPT) -c $<
sfx4.o: sfx4.c $(DEPS)
gcc $(COPT) -c $<
contour2x2.o: contour2x2.c $(DEPS) contour2x2.o: contour2x2.c $(DEPS)
gcc $(COPT) -c $< gcc $(COPT) -c $<

View File

@ -6,6 +6,7 @@
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include <stdint.h>
#include "../floatimg.h" #include "../floatimg.h"

View File

@ -7,6 +7,7 @@
#include <stdio.h> #include <stdio.h>
#include <math.h> #include <math.h>
#include <stdint.h>
#include "../floatimg.h" #include "../floatimg.h"

View File

@ -4,6 +4,7 @@
*/ */
#include <stdio.h> #include <stdio.h>
#include <stdint.h>
#include "../floatimg.h" #include "../floatimg.h"

View File

@ -5,6 +5,7 @@
#include <stdio.h> #include <stdio.h>
#include <math.h> #include <math.h>
#include <stdint.h>
#include "../floatimg.h" #include "../floatimg.h"
@ -20,6 +21,8 @@ int fimg_recursion_proto(FloatImg *src, FloatImg *dst, int notused)
fprintf(stderr, ">>> %s ( %p %p %d )\n", __func__, src, dst, notused); fprintf(stderr, ">>> %s ( %p %p %d )\n", __func__, src, dst, notused);
#endif #endif
fprintf(stderr, "!!!!!! %s is a wip !!!!!\n", __func__);
return -1; return -1;
} }
/* -------------------------------------------------------------------- */ /* -------------------------------------------------------------------- */

View File

@ -6,6 +6,7 @@
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include <stdint.h>
#include "../floatimg.h" #include "../floatimg.h"

View File

@ -3,6 +3,7 @@
*/ */
#include <stdio.h> #include <stdio.h>
#include <stdint.h>
#include "../floatimg.h" #include "../floatimg.h"
@ -99,7 +100,7 @@ coefs[0] = coefs[2] = coefs[4] = minima;
foo = fimg_shift_to_zero(src, dst, coefs); foo = fimg_shift_to_zero(src, dst, coefs);
if (foo) { if (foo) {
fprintf(stderr, "%s WTF?\n", __func__); fprintf(stderr, "%s WTF? %d\n", __func__, foo);
return foo; return foo;
} }

View File

@ -5,6 +5,7 @@
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include <stdint.h>
#include "../floatimg.h" #include "../floatimg.h"

View File

@ -6,6 +6,7 @@
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include <stdint.h>
#include "../floatimg.h" #include "../floatimg.h"

View File

@ -5,6 +5,7 @@
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include <stdint.h>
#include "../floatimg.h" #include "../floatimg.h"

42
src/funcs/sfx4.c Normal file
View File

@ -0,0 +1,42 @@
/*
* FLOATIMG - a kluge from tTh
* ---------------------------
*
* some strange effects on floating pictures.
*/
#include <stdio.h>
#include <string.h>
#include <stdint.h>
#include "../floatimg.h"
extern int verbosity;
/* -------------------------------------------------------------- */
int fimg_sfx_triplemul(FloatImg *src, FloatImg *dst, int notused)
{
int x, y, foo;
float in[3], out[3];
#if DEBUG_LEVEL
fprintf(stderr, ">>> %s ( %p 0x%04x )\n", __func__, img, notused);
#endif
for (y=0; y<src->height; y++) {
for (x=0; x<src->width; x++) {
foo = fimg_get_rgb(src, x, y, in);
out[0] = in[1] * in[2];
out[1] = in[0] * in[2];
out[2] = in[0] * in[1];
// fprintf(stderr, "%9f %9f %9f\n", out[0], out[1], out[2]);
foo = fimg_put_rgb(dst, x, y, out);
}
}
return 0;
}
/* -------------------------------------------------------------- */
/* -------------------------------------------------------------- */

View File

@ -4,6 +4,7 @@
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include <stdint.h>
#include "../floatimg.h" #include "../floatimg.h"

View File

@ -1,5 +1,9 @@
/* /*
* contrast.c - part of libfloatimg * contrast.c - part of libfloatimg
* --------------------------------
*
* you can see some use in 'tools/fimgfx.c', so you can thing
* about the 'maxval' parameter. C'est touchy :)
*/ */
#include <stdio.h> #include <stdio.h>
@ -48,7 +52,6 @@ else {
} }
} }
nbre = s->width * s->height; nbre = s->width * s->height;
for (idx=0; idx<nbre; idx++) { for (idx=0; idx<nbre; idx++) {
@ -83,7 +86,6 @@ else {
} }
} }
nbre = s->width * s->height; nbre = s->width * s->height;
for (idx=0; idx<nbre; idx++) { for (idx=0; idx<nbre; idx++) {
@ -97,7 +99,6 @@ for (idx=0; idx<nbre; idx++) {
return 0; return 0;
} }
/* ---------------------------------------------------------------- */ /* ---------------------------------------------------------------- */
/* /*
#macro Cos_01( X ) #macro Cos_01( X )

View File

@ -1,5 +1,8 @@
/* /*
FIMGFX FIMGFX
* some functions here come from 'funcs/contrast.c'
*
*/ */
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
@ -22,7 +25,7 @@ typedef struct {
enum fxid { Fx_cos01=5, Fx_cos010, Fx_pow2, Fx_sqrt, Fx_gray0, Fx_halfsz0, enum fxid { Fx_cos01=5, Fx_cos010, Fx_pow2, Fx_sqrt, Fx_gray0, Fx_halfsz0,
Fx_rot90, Fx_cmixa, Fx_desat, Fx_ctr2x2, Fx_norm, Fx_rot90, Fx_cmixa, Fx_desat, Fx_ctr2x2, Fx_norm,
Fx_classtrial, Fx_mirror, Fx_shift0, Fx_classtrial, Fx_mirror, Fx_shift0, Fx_trimul,
Fx_xper, Fx_binarize, Fx_trinarize,Fx_hilight_R }; Fx_xper, Fx_binarize, Fx_trinarize,Fx_hilight_R };
Fx fx_list[] = { Fx fx_list[] = {
@ -39,6 +42,7 @@ Fx fx_list[] = {
{ "ctr2x2", Fx_ctr2x2, 0, 1 }, { "ctr2x2", Fx_ctr2x2, 0, 1 },
{ "mirror", Fx_mirror, 0, 1 }, { "mirror", Fx_mirror, 0, 1 },
{ "shift0", Fx_shift0, 0, 1 }, { "shift0", Fx_shift0, 0, 1 },
{ "trimul", Fx_trimul, 0, 1 },
// { "norm", Fx_norm, 0, 1 }, // { "norm", Fx_norm, 0, 1 },
{ "classtrial", Fx_classtrial, 0, 1 }, { "classtrial", Fx_classtrial, 0, 1 },
{ "binarize", Fx_binarize, 0, 1 }, { "binarize", Fx_binarize, 0, 1 },
@ -51,6 +55,7 @@ Fx fx_list[] = {
static void list_of_effects(void) static void list_of_effects(void)
{ {
Fx *fx; Fx *fx;
/* this list must be on just ONE columns */
for (fx=fx_list; fx->name; fx++) { for (fx=fx_list; fx->name; fx++) {
printf("%s\n", fx->name); printf("%s\n", fx->name);
} }
@ -89,7 +94,7 @@ fprintf(stderr, ">>> %s ( %p %p %f )\n", __func__, S, D, kf);
foo = fimg_classif_trial(S, D, kf, 0); foo = fimg_classif_trial(S, D, kf, 0);
if (foo) { if (foo) {
fprintf(stderr, "%s err %d classif_trial %p\n", __func__, fprintf(stderr, "%s error %d classif_trial %p\n", __func__,
foo, S); foo, S);
return -98; return -98;
} }
@ -102,7 +107,7 @@ static void help(int lvl)
Fx *fx; Fx *fx;
int foo; int foo;
printf("-- fimg special effects -- %s %s --\n", __DATE__, __TIME__); printf("-*- fimg special effects -*- %s %s -*-\n", __DATE__, __TIME__);
puts("usage:"); puts("usage:");
puts("\tfimgfx [options] <effect> source.fimg resultat.fimg"); puts("\tfimgfx [options] <effect> source.fimg resultat.fimg");
@ -121,7 +126,7 @@ for (fx=fx_list; fx->name; fx++) {
foo = 0; foo = 0;
} }
} }
puts(""); puts("\n");
fimg_print_version(1); fimg_print_version(1);
exit(0); exit(0);
} }
@ -203,9 +208,13 @@ switch (action) {
foo = fimg_mirror(&src, &dest, 0); foo = fimg_mirror(&src, &dest, 0);
break; break;
case Fx_shift0: case Fx_shift0:
fprintf(stderr, "Krkrk %d\n", action); // fprintf(stderr, "Krkrk %d\n", action);
foo = fimg_auto_shift_to_zero(&src, &dest); foo = fimg_auto_shift_to_zero(&src, &dest);
break; break;
case Fx_trimul:
fprintf(stderr, "trimul %d\n", action);
foo = fimg_sfx_triplemul(&src, &dest, 0);
break;
case Fx_ctr2x2: case Fx_ctr2x2:
foo = fimg_contour_2x2(&src, &dest, 0); foo = fimg_contour_2x2(&src, &dest, 0);
break; break;