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
gcc $(COPT) $< \
tests.o \
@ -28,8 +31,9 @@ t: t.c $(DEPS) ../libfloatimg.a tests.o
-ltiff \
-lz -lm -o $@
tests.o: tests.c tests.h $(DEPS)
gcc $(COPT) -I/usr/include/netpbm -c $<
tpnm: tpnm.c Makefile fimg-libpnm.o
gcc $(COPT) -I/usr/include/netpbm \
fimg-libpnm.o -lnetpbm $< -o $@
#---------------------------------------------------------------
# upper-level functions

View File

@ -2,34 +2,42 @@
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
Détecter des contours est une activité respectable. Mais difficile.
Une recherche dans la littérature s'impose.
## Exporter
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.
`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 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
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
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
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)
{
printf(" text %s\n", text);
printf(" size %d\n", ppam->size);
printf("\ttext %s\n", text);
printf("\tsize %d\n", ppam->size);
printf(" format %d\n", ppam->format);
printf(" plainformat %d\n", ppam->plainformat);
printf(" width & height %d %d\n", ppam->width, ppam->height);
printf(" depth %d\n", ppam->depth);
printf(" maxval %lu\n", ppam->maxval);
printf("\tformat %d 0x%04x\n", ppam->format, ppam->format);
printf("\tplainformat %d\n", ppam->plainformat);
printf("\twidth & height %d %d\n", ppam->width, ppam->height);
printf("\tdepth %d\n", ppam->depth);
printf("\tmaxval %lu\n", ppam->maxval);
}
/* --------------------------------------------------------------------- */
@ -36,13 +36,14 @@ FILE *fp;
fprintf(stderr, ">>> %s ( '%s' )\n", __func__, fname);
#endif
printf(" --- infos for '%s' ------------\n", fname);
if (NULL==(fp=fopen(fname, "r"))) {
perror(fname);
exit(1);
}
pnm_readpaminit(fp, &inpam, sizeof(inpam));
print_struct_pam(&inpam, fname);
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)
{

View File

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

View File

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

View File

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