This commit is contained in:
tTh 2024-05-01 21:38:19 +02:00
parent 85dbf384bd
commit 11e87efd67
7 changed files with 55 additions and 33 deletions

View File

@ -19,6 +19,9 @@ OBJS = fimg-png.o fimg-tiff.o misc-plots.o filtrage.o utils.o \
#--------------------------------------------------------------- #---------------------------------------------------------------
tests.o: tests.c tests.h $(DEPS)
gcc $(COPT) -I/usr/include/netpbm -c $<
t: t.c $(DEPS) ../libfloatimg.a tests.o t: t.c $(DEPS) ../libfloatimg.a tests.o
gcc $(COPT) $< \ gcc $(COPT) $< \
tests.o \ tests.o \
@ -28,8 +31,9 @@ t: t.c $(DEPS) ../libfloatimg.a tests.o
-ltiff \ -ltiff \
-lz -lm -o $@ -lz -lm -o $@
tests.o: tests.c tests.h $(DEPS) tpnm: tpnm.c Makefile fimg-libpnm.o
gcc $(COPT) -I/usr/include/netpbm -c $< gcc $(COPT) -I/usr/include/netpbm \
fimg-libpnm.o -lnetpbm $< -o $@
#--------------------------------------------------------------- #---------------------------------------------------------------
# upper-level functions # upper-level functions

View File

@ -2,34 +2,42 @@
Plein de fonctions qu'il serait bon de documenter :) Plein de fonctions qu'il serait bon de documenter :)
## PNG
__Attention__ : la bibliothèque `pnglite`actuellement utilisée pour lire
les fichiers PNG n'accepte que **certains** types de fichiers.
Et en particulier, elle brotche sur ceux produits par ImageMagick !
## FITS
Un Format de fichier utilisé en astronomie.
https://heasarc.gsfc.nasa.gov/docs/software/fitsio/c/c_user/node1.html
## DICOM
https://en.wikipedia.org/wiki/DICOM et ça semble bien compliqué :(
## Contours ## Contours
Détecter des contours est une activité respectable. Mais difficile. Détecter des contours est une activité respectable. Mais difficile.
Une recherche dans la littérature s'impose.
## Exporter ## Exporter
Une méta-fonction qui va sauvegarder (dans la mesure de ses conséquences) `fimg_exporter` est une méta-fonction qui va sauvegarder (dans la mesure de ses conséquences)
une image en fonction de l'extension du nom de fichier. une image en fonction de l'extension du nom de fichier fourni.
### PNG
__Attention__ : la bibliothèque `pnglite` actuellement utilisée pour lire
les fichiers PNG n'accepte que certains types de fichiers.
Et en particulier, elle brotche sur ceux produits par ImageMagick !
### FITS
Ce format de fichier est utilisé en astronomie.
https://heasarc.gsfc.nasa.gov/docs/software/fitsio/c/c_user/node1.html
### DICOM
https://en.wikipedia.org/wiki/DICOM et ça semble bien compliqué,
donc ça reste pour le moment au stade de vague projet :(
## Sfx ## Sfx
Effets spéciaux divers. Effets spéciaux divers. Ils sont répartis dans plusieurs fichiers
(`sfx[0-4].c`) sans raison de classement apparente.
Certains peuvent être directement utilisés
avec l'outil [../tools/fimgfx.c](fimgfx).
Leur paramétrage est trop sommaire.
La fonction `fimg_pixelize_h_rnd` est issue d'une idée qui m'est venue La fonction `fimg_pixelize_h_rnd` est issue d'une idée qui m'est venue
dans la roulotte de TerreBlanque. Elle a besoin de recherches sur la dans la roulotte de TerreBlanque. Elle a besoin de recherches sur la
@ -38,3 +46,7 @@ dynamique temporelle, et d'une FSM à trois états.
## Dithering ## Dithering
Work in progress... Work in progress...
Une difficulté dans ce domaine, c'est la *floattitude* des pixels,
sur laquelle il est difficile d'appliquer des operations binaires,
comme le XOR.

View File

@ -16,14 +16,14 @@ extern int verbosity;
/* --------------------------------------------------------------------- */ /* --------------------------------------------------------------------- */
static void print_struct_pam(struct pam *ppam, char *text) static void print_struct_pam(struct pam *ppam, char *text)
{ {
printf(" text %s\n", text); printf("\ttext %s\n", text);
printf(" size %d\n", ppam->size); printf("\tsize %d\n", ppam->size);
printf(" format %d\n", ppam->format); printf("\tformat %d 0x%04x\n", ppam->format, ppam->format);
printf(" plainformat %d\n", ppam->plainformat); printf("\tplainformat %d\n", ppam->plainformat);
printf(" width & height %d %d\n", ppam->width, ppam->height); printf("\twidth & height %d %d\n", ppam->width, ppam->height);
printf(" depth %d\n", ppam->depth); printf("\tdepth %d\n", ppam->depth);
printf(" maxval %lu\n", ppam->maxval); printf("\tmaxval %lu\n", ppam->maxval);
} }
/* --------------------------------------------------------------------- */ /* --------------------------------------------------------------------- */
@ -36,13 +36,14 @@ FILE *fp;
fprintf(stderr, ">>> %s ( '%s' )\n", __func__, fname); fprintf(stderr, ">>> %s ( '%s' )\n", __func__, fname);
#endif #endif
printf(" --- infos for '%s' ------------\n", fname);
if (NULL==(fp=fopen(fname, "r"))) { if (NULL==(fp=fopen(fname, "r"))) {
perror(fname); perror(fname);
exit(1); exit(1);
} }
pnm_readpaminit(fp, &inpam, sizeof(inpam)); pnm_readpaminit(fp, &inpam, sizeof(inpam));
print_struct_pam(&inpam, fname); print_struct_pam(&inpam, fname);
fclose(fp); fclose(fp);

View File

@ -36,7 +36,7 @@ return 0;
} }
/* --------------------------------------------------------------------- */ /* --------------------------------------------------------------------- */
/* /*
* parameter fval is not used, why ? * parameter fval is used for what ?
*/ */
int fimg_killcolors_b(FloatImg *fimg, float fval) int fimg_killcolors_b(FloatImg *fimg, float fval)
{ {

View File

@ -103,4 +103,7 @@ for (foo=0; foo<size; foo++) {
return 0; return 0;
} }
/* -------------------------------------------------------------- */ /* -------------------------------------------------------------- */
/*
* ici, il manque le quaternize :)
*/
/* -------------------------------------------------------------- */

View File

@ -69,8 +69,8 @@ fprintf(stderr, ">>> %s ( %p %p %f 0x%04x )\n", __func__,
#endif #endif
if (notused) { if (notused) {
fprintf(stderr, "notused was %d, must be 0 in %s\n", fprintf(stderr, "%s: notused was %d, must be 0\n",
notused, __func__); __func__, notused);
} }
halfval = fimg_get_maxvalue(src) / 2.0; halfval = fimg_get_maxvalue(src) / 2.0;

View File

@ -1,10 +1,12 @@
/* /*
* testbed for using the Netpbm library
*/ */
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <pam.h>
#include <pam.h> /* Portable Any Map */
#include "../floatimg.h" #include "../floatimg.h"