Compare commits
7 Commits
ad58bf521d
...
6e6433368c
Author | SHA1 | Date | |
---|---|---|---|
|
6e6433368c | ||
|
d7a3074561 | ||
|
0a92028c56 | ||
|
7c314c73ce | ||
|
81d04ec4d6 | ||
|
5cf9661713 | ||
|
f884220433 |
@ -6,11 +6,11 @@
|
|||||||
COPT = -g -fpic -no-pie -Wall -DDEBUG_LEVEL=0 -Werror=parentheses
|
COPT = -g -fpic -no-pie -Wall -DDEBUG_LEVEL=0 -Werror=parentheses
|
||||||
LIBS = ../libfloatimg.a -ltiff -lpnglite -lm -lz -lcfitsio
|
LIBS = ../libfloatimg.a -ltiff -lpnglite -lm -lz -lcfitsio
|
||||||
|
|
||||||
OBJS = fonctions.o sfx.o crapulator.o glitches.o metriques.o \
|
OBJS = fifo.o sfx.o crapulator.o glitches.o metriques.o \
|
||||||
filterstack.o single.o
|
filterstack.o single.o
|
||||||
|
|
||||||
DEPS = ../floatimg.h \
|
DEPS = ../floatimg.h \
|
||||||
fonctions.h crapulator.h metriques.h glitches.h sfx.h \
|
fifo.h crapulator.h metriques.h glitches.h sfx.h \
|
||||||
filterstack.h crapdef.h crapstr.h single.h
|
filterstack.h crapdef.h crapstr.h single.h
|
||||||
|
|
||||||
all: fonderie interpolator singlepass t
|
all: fonderie interpolator singlepass t
|
||||||
@ -52,7 +52,7 @@ crapstr.h: crapulors.liste Makefile craplist2str.awk
|
|||||||
crapulator.o: crapulator.c ${DEPS} Makefile
|
crapulator.o: crapulator.c ${DEPS} Makefile
|
||||||
gcc ${COPT} -c $<
|
gcc ${COPT} -c $<
|
||||||
|
|
||||||
fonctions.o: fonctions.c fonctions.h Makefile
|
fifo.o: fifo.c fifo.h Makefile
|
||||||
gcc ${COPT} -c $<
|
gcc ${COPT} -c $<
|
||||||
|
|
||||||
sfx.o: sfx.c ${DEPS} Makefile
|
sfx.o: sfx.c ${DEPS} Makefile
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
#include "../floatimg.h"
|
#include "../floatimg.h"
|
||||||
|
|
||||||
#include "fonctions.h"
|
#include "fifo.h"
|
||||||
#include "crapulator.h"
|
#include "crapulator.h"
|
||||||
#include "glitches.h"
|
#include "glitches.h"
|
||||||
#include "sfx.h"
|
#include "sfx.h"
|
||||||
@ -157,7 +157,7 @@ return retval;
|
|||||||
* processor.
|
* processor.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define DEBUG_THIS_CRAP 60
|
#define DEBUG_THIS_CRAP 0
|
||||||
|
|
||||||
int crapulator(FloatImg *image, int idFx, float fval)
|
int crapulator(FloatImg *image, int idFx, float fval)
|
||||||
{
|
{
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
#include "../floatimg.h"
|
#include "../floatimg.h"
|
||||||
|
|
||||||
#include "fonctions.h"
|
#include "fifo.h"
|
||||||
#include "crapulator.h"
|
#include "crapulator.h"
|
||||||
#include "filterstack.h"
|
#include "filterstack.h"
|
||||||
|
|
||||||
@ -19,7 +19,8 @@
|
|||||||
*/
|
*/
|
||||||
extern int verbosity;
|
extern int verbosity;
|
||||||
|
|
||||||
/* private vars of this module - it was very dirty
|
/* private vars of this module - it was very dirty,
|
||||||
|
* but simple and efficient.
|
||||||
*/
|
*/
|
||||||
static A_Fifo g_fifo;
|
static A_Fifo g_fifo;
|
||||||
|
|
||||||
@ -45,6 +46,11 @@ int faire_la_somme(A_Fifo *pfifo, FloatImg *destination, int step)
|
|||||||
int idx, foo;
|
int idx, foo;
|
||||||
FloatImg *pdest;
|
FloatImg *pdest;
|
||||||
|
|
||||||
|
#if DEBUG_LEVEL
|
||||||
|
fprintf(stderr, ">>> %s ( %p %p %d )\n", __func__,
|
||||||
|
pfifo, destination, step);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (NULL==destination) {
|
if (NULL==destination) {
|
||||||
pdest = &(pfifo->total); }
|
pdest = &(pfifo->total); }
|
||||||
else {
|
else {
|
||||||
@ -62,24 +68,26 @@ for (idx=0; idx<pfifo->nbslots; idx += step) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(stderr, "*** %s %s writing debug file ***\n",
|
/* XXX
|
||||||
|
fprintf(stderr, "*** %s:%s writing debugB file ***\n",
|
||||||
__FILE__, __func__);
|
__FILE__, __func__);
|
||||||
fimg_dump_to_file(&g_fifo.total, "debugB.fimg", 0);
|
fimg_dump_to_file(&g_fifo.total, "debugB.fimg", 0);
|
||||||
|
XXX */
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
/* -------------------------------------------------------------- */
|
/* -------------------------------------------------------------- */
|
||||||
/* called by 'fonderie.c'
|
/* called by 'fonderie.c'
|
||||||
* this func save the fifo content as
|
|
||||||
* - float FIMG
|
|
||||||
* - 16 bits PNM
|
|
||||||
* - 8 bits PNG
|
|
||||||
*/
|
*/
|
||||||
int export_fifo(char *fname, int step)
|
int export_fifo(char *fname, int step)
|
||||||
{
|
{
|
||||||
int foo, type;
|
int foo, type;
|
||||||
|
|
||||||
foo = faire_la_somme(&g_fifo, NULL, step);
|
#if DEBUG_LEVEL
|
||||||
|
fprintf(stderr, ">>> %s ( '%s' %d )\n", __func__, fname, step);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
foo = faire_la_somme(&g_fifo, NULL, 1);
|
||||||
|
|
||||||
foo = filterstack_run(1, &g_fifo.total, 0);
|
foo = filterstack_run(1, &g_fifo.total, 0);
|
||||||
if (foo) {
|
if (foo) {
|
||||||
@ -88,24 +96,7 @@ if (foo) {
|
|||||||
return foo;
|
return foo;
|
||||||
}
|
}
|
||||||
|
|
||||||
type = format_from_extension(fname);
|
foo = fimg_export_picture(&g_fifo.total, fname, 0);
|
||||||
switch (type) {
|
|
||||||
case FILE_TYPE_PNG:
|
|
||||||
foo = fimg_save_as_png(&g_fifo.total, fname, 0);
|
|
||||||
break;
|
|
||||||
case FILE_TYPE_PNM:
|
|
||||||
foo = fimg_save_as_pnm(&g_fifo.total, fname, 0);
|
|
||||||
break;
|
|
||||||
case FILE_TYPE_FIMG:
|
|
||||||
foo = fimg_dump_to_file(&g_fifo.total, fname, 0);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
fprintf(stderr, "%s : type of '%s' unknow\n",
|
|
||||||
__func__, fname);
|
|
||||||
foo = 888;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (foo) {
|
if (foo) {
|
||||||
fprintf(stderr, "ERR EXPORT '%s' is %d\n", fname, foo);
|
fprintf(stderr, "ERR EXPORT '%s' is %d\n", fname, foo);
|
||||||
exit(3);
|
exit(3);
|
||||||
@ -117,7 +108,11 @@ return 0;
|
|||||||
int insert_picture(FloatImg *src)
|
int insert_picture(FloatImg *src)
|
||||||
{
|
{
|
||||||
FloatImg *dst;
|
FloatImg *dst;
|
||||||
int nbre;
|
int nbre, foo;
|
||||||
|
|
||||||
|
#if DEBUG_LEVEL
|
||||||
|
fprintf(stderr, ">>> %s ( %p )\n", __func__, src);
|
||||||
|
#endif
|
||||||
|
|
||||||
dst = &g_fifo.slots[g_fifo.next];
|
dst = &g_fifo.slots[g_fifo.next];
|
||||||
|
|
||||||
@ -126,9 +121,12 @@ memcpy(dst->R, src->R, nbre);
|
|||||||
memcpy(dst->G, src->G, nbre);
|
memcpy(dst->G, src->G, nbre);
|
||||||
memcpy(dst->B, src->B, nbre);
|
memcpy(dst->B, src->B, nbre);
|
||||||
|
|
||||||
fprintf(stderr, "*** %s %s writing debug file ***\n",
|
/* XXX
|
||||||
|
fprintf(stderr, "*** %s:%s writing debugA file ***\n",
|
||||||
__FILE__, __func__);
|
__FILE__, __func__);
|
||||||
fimg_dump_to_file(dst, "debugA.fimg", 0);
|
foo = fimg_dump_to_file(dst, "debugA.fimg", 0);
|
||||||
|
fprintf(stderr, " ok file dumped %d\n", foo);
|
||||||
|
XXX */
|
||||||
|
|
||||||
g_fifo.next++; g_fifo.next %= g_fifo.nbslots;
|
g_fifo.next++; g_fifo.next %= g_fifo.nbslots;
|
||||||
|
|
@ -9,7 +9,7 @@
|
|||||||
#include <glob.h>
|
#include <glob.h>
|
||||||
#include "../floatimg.h"
|
#include "../floatimg.h"
|
||||||
|
|
||||||
#include "fonctions.h"
|
#include "fifo.h"
|
||||||
#include "glitches.h"
|
#include "glitches.h"
|
||||||
#include "crapulator.h"
|
#include "crapulator.h"
|
||||||
#include "filterstack.h"
|
#include "filterstack.h"
|
||||||
@ -17,12 +17,19 @@
|
|||||||
int verbosity;
|
int verbosity;
|
||||||
|
|
||||||
/* -------------------------------------------------------------- */
|
/* -------------------------------------------------------------- */
|
||||||
int traite_une_image(FloatImg *image, int step, char *outd)
|
/*
|
||||||
|
* this is the real worker ? or just a wrapper ?
|
||||||
|
*/
|
||||||
|
int traite_une_image(FloatImg *image, char *outd)
|
||||||
{
|
{
|
||||||
static int numero;
|
static int numero;
|
||||||
int foo;
|
int foo;
|
||||||
char ligne[200];
|
char ligne[200];
|
||||||
|
|
||||||
|
#if DEBUG_LEVEL
|
||||||
|
fprintf(stderr, "\n>>> %s ( %p '%s' )\n", __func__, image, outd);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* here, we put the picz in the fifo machinery */
|
/* here, we put the picz in the fifo machinery */
|
||||||
foo = insert_picture(image);
|
foo = insert_picture(image);
|
||||||
if (foo) {
|
if (foo) {
|
||||||
@ -30,46 +37,33 @@ if (foo) {
|
|||||||
return foo;
|
return foo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* and now, we pull the result on the magic computation
|
||||||
|
*/
|
||||||
sprintf(ligne, "%s/%05d.png", outd, numero);
|
sprintf(ligne, "%s/%05d.png", outd, numero);
|
||||||
foo = export_fifo(ligne, step);
|
if (verbosity > 1) fprintf(stderr, " exporting to '%s'\n", ligne);
|
||||||
|
|
||||||
|
foo = export_fifo(ligne, 1);
|
||||||
if (foo) {
|
if (foo) {
|
||||||
fprintf(stderr, "%s: err %d on export\n", __func__, foo);
|
fprintf(stderr, "%s: err %d on export\n", __func__, foo);
|
||||||
return foo;
|
return foo;
|
||||||
}
|
}
|
||||||
numero++; /* VERY IMPORTANT :) */
|
numero++; /* VERY IMPORTANT :) */
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
/* -------------------------------------------------------------- */
|
/* -------------------------------------------------------------- */
|
||||||
int insert_blank(FloatImg *image, int nbre, float fval, char *outd)
|
int insert_blank(FloatImg *image, int nbre, char *outd)
|
||||||
{
|
{
|
||||||
int idx, foo;
|
int idx, foo;
|
||||||
int preloaded = 0;
|
|
||||||
FloatImg blank;
|
|
||||||
char *fname;
|
|
||||||
|
|
||||||
#if DEBUG_LEVEL
|
#if DEBUG_LEVEL
|
||||||
fprintf(stderr, ">>> %s ( %p %d %d %f '%s' )\n", __func__,
|
fprintf(stderr, ">>> %s ( %p %d '%s' )\n", __func__,
|
||||||
image, nbre, pproc, fval, outd);
|
image, nbre, outd);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (NULL != (fname=getenv("BLANK_FIMG"))) {
|
|
||||||
fprintf(stderr,"%s: try to load %s\n", __func__, fname);
|
|
||||||
fimg_clone(image, &blank, 1);
|
|
||||||
foo = fimg_load_from_dump(fname, &blank);
|
|
||||||
if (foo) {
|
|
||||||
fprintf(stderr, "epic fail %d on %s\n", foo, fname);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
if (verbosity) fimg_describe(&blank, "Blank pic");
|
|
||||||
preloaded = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
fimg_clear(image);
|
fimg_clear(image);
|
||||||
for (idx=0; idx<nbre; idx++) {
|
for (idx=0; idx<nbre; idx++) {
|
||||||
if (preloaded) {
|
if ((foo=traite_une_image(image, outd))) {
|
||||||
fimg_copy_data(&blank, image);
|
|
||||||
}
|
|
||||||
if ((foo=traite_une_image(image, 1, outd))) {
|
|
||||||
fprintf(stderr, "%s : err %d from 'traite_une_image'\n",
|
fprintf(stderr, "%s : err %d from 'traite_une_image'\n",
|
||||||
__func__, foo);
|
__func__, foo);
|
||||||
break;
|
break;
|
||||||
@ -78,10 +72,6 @@ for (idx=0; idx<nbre; idx++) {
|
|||||||
}
|
}
|
||||||
puts("");
|
puts("");
|
||||||
|
|
||||||
if (preloaded) {
|
|
||||||
fimg_destroy(&blank);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
/* -------------------------------------------------------------- */
|
/* -------------------------------------------------------------- */
|
||||||
@ -98,8 +88,8 @@ float maxvalue;
|
|||||||
int datas[3];
|
int datas[3];
|
||||||
|
|
||||||
#if DEBUG_LEVEL
|
#if DEBUG_LEVEL
|
||||||
fprintf(stderr, ">>> %s ( '%s' -> '%s' %d eff:%d:%d)\n", __func__,
|
fprintf(stderr, "\n>>> %s ( '%s' -> '%s' %d )\n", __func__,
|
||||||
pattern, outdir, szfifo, infx, outfx);
|
pattern, outdir, szfifo);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (1 != step) fprintf(stderr, "\tstep is %d\n", step);
|
if (1 != step) fprintf(stderr, "\tstep is %d\n", step);
|
||||||
@ -137,12 +127,14 @@ foo = create_fifo(szfifo, width, height, FIMG_TYPE_RGB);
|
|||||||
fprintf(stderr, "init fifo (%d slots) --> %d\n", szfifo, foo);
|
fprintf(stderr, "init fifo (%d slots) --> %d\n", szfifo, foo);
|
||||||
|
|
||||||
/* XXX inject a few strange pics in the fifo */
|
/* XXX inject a few strange pics in the fifo */
|
||||||
insert_blank(&input, blk, maxvalue, outdir);
|
insert_blank(&input, blk, outdir);
|
||||||
|
|
||||||
for (idx=0; idx<globbuf.gl_pathc; idx++) {
|
for (idx=0; idx<globbuf.gl_pathc; idx++) {
|
||||||
|
|
||||||
cptr = globbuf.gl_pathv[idx];
|
cptr = globbuf.gl_pathv[idx];
|
||||||
/* first step : read the current grabed picz from disk,
|
/* first step : read the current grabed picz from disk,
|
||||||
and put it in our private buffer */
|
and put it in our private buffer */
|
||||||
|
// fprintf(stderr, "\n######### loading '%s'\n", cptr);
|
||||||
foo = fimg_load_from_dump(cptr, &input);
|
foo = fimg_load_from_dump(cptr, &input);
|
||||||
if (foo) {
|
if (foo) {
|
||||||
fprintf(stderr, "load #%d from dump -> %d\n", idx, foo);
|
fprintf(stderr, "load #%d from dump -> %d\n", idx, foo);
|
||||||
@ -155,7 +147,7 @@ for (idx=0; idx<globbuf.gl_pathc; idx++) {
|
|||||||
fprintf(stderr, "%s: input filter -> %d\n", __func__, foo);
|
fprintf(stderr, "%s: input filter -> %d\n", __func__, foo);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
foo = traite_une_image(&input, step, outdir);
|
foo = traite_une_image(&input, outdir);
|
||||||
|
|
||||||
if (foo) {
|
if (foo) {
|
||||||
fprintf(stderr, "traitement %s -> %d WTF?\n", cptr, foo);
|
fprintf(stderr, "traitement %s -> %d WTF?\n", cptr, foo);
|
||||||
@ -166,7 +158,7 @@ for (idx=0; idx<globbuf.gl_pathc; idx++) {
|
|||||||
|
|
||||||
fputs("\n", stderr);
|
fputs("\n", stderr);
|
||||||
|
|
||||||
insert_blank(&input, blk, maxvalue, outdir);
|
insert_blank(&input, blk, outdir);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* PLEASE, FLUSH THE FIFO !
|
* PLEASE, FLUSH THE FIFO !
|
||||||
|
@ -45,7 +45,7 @@ int kill_a_random_line(FloatImg *pvictime, float fval, int bits)
|
|||||||
int line, xpos, offset;
|
int line, xpos, offset;
|
||||||
float ftmp;
|
float ftmp;
|
||||||
|
|
||||||
#if DEBUG_LEVEL
|
#if DEBUG_LEVEL > 1
|
||||||
fprintf(stderr, ">>> %s ( %p %d )\n", __func__, pvictime, bits);
|
fprintf(stderr, ">>> %s ( %p %d )\n", __func__, pvictime, bits);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
#include "../floatimg.h"
|
#include "../floatimg.h"
|
||||||
|
|
||||||
#include "fonctions.h"
|
#include "fifo.h"
|
||||||
#include "glitches.h"
|
#include "glitches.h"
|
||||||
#include "crapulator.h"
|
#include "crapulator.h"
|
||||||
#include "metriques.h"
|
#include "metriques.h"
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
#include "../floatimg.h"
|
#include "../floatimg.h"
|
||||||
|
|
||||||
#include "fonctions.h"
|
#include "fifo.h"
|
||||||
#include "metriques.h"
|
#include "metriques.h"
|
||||||
#include "sfx.h"
|
#include "sfx.h"
|
||||||
|
|
||||||
|
3
build.sh
3
build.sh
@ -14,7 +14,7 @@ cd ${curdir}
|
|||||||
if [ ${error} -ne 0 ]
|
if [ ${error} -ne 0 ]
|
||||||
then
|
then
|
||||||
echo === error on $1 = ${error}
|
echo === error on $1 = ${error}
|
||||||
exit
|
exit 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -24,6 +24,7 @@ build lib
|
|||||||
build funcs
|
build funcs
|
||||||
build tools
|
build tools
|
||||||
build v4l2
|
build v4l2
|
||||||
|
build Fonderie
|
||||||
|
|
||||||
# ------------------------------------------------------------------
|
# ------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
\setlength \parskip {0.35em}
|
\setlength \parskip {0.35em}
|
||||||
|
|
||||||
\makeatletter
|
\makeatletter
|
||||||
% exlpication de ce truc ?
|
% exlication de ce truc ?
|
||||||
\def\verbatim@font{\normalfont\ttfamily\small}
|
\def\verbatim@font{\normalfont\ttfamily\small}
|
||||||
\makeatother
|
\makeatother
|
||||||
|
|
||||||
@ -125,7 +125,8 @@ Dynamique, précision et \textsl{macheps} ?
|
|||||||
\subsection{Pixel négatif ?}
|
\subsection{Pixel négatif ?}
|
||||||
|
|
||||||
Il est très difficle d'imaginer une lumière négative. Sauf peut-être
|
Il est très difficle d'imaginer une lumière négative. Sauf peut-être
|
||||||
si nous songeons à des coefficients d'absorption ?
|
si nous songeons à des coefficients d'absorption, ou un canal
|
||||||
|
\textsl{alpha} qui inverserait les valeurs ?
|
||||||
|
|
||||||
% -------------------------------------------------------------------
|
% -------------------------------------------------------------------
|
||||||
|
|
||||||
@ -1311,8 +1312,9 @@ devez mettre ce bout de XML\index{XML} dans le fichier
|
|||||||
|
|
||||||
C'est juste un hack rapide, qui ne fonctionne pas très bien avec
|
C'est juste un hack rapide, qui ne fonctionne pas très bien avec
|
||||||
d'autres commande de IM, comme identify, qui a tendance à
|
d'autres commande de IM, comme identify, qui a tendance à
|
||||||
raconter un peu n'importe quoi... Je compte donc sur le bouquin
|
raconter un peu n'importe quoi, puisqu'elle se base sur le
|
||||||
de \textsl{Brunus} pour avancer...
|
résultat de la conversion\dots
|
||||||
|
Je compte donc sur le bouquin de \textsl{Brunus} pour avancer\dots
|
||||||
|
|
||||||
\subsection{Gimp}\index{Gimp}
|
\subsection{Gimp}\index{Gimp}
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
* http://la.buvette.org/photos/cumul
|
* http://la.buvette.org/photos/cumul
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define FIMG_VERSION 128
|
#define FIMG_VERSION 130
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* in memory descriptor
|
* in memory descriptor
|
||||||
|
@ -12,6 +12,10 @@ cp tools/mkfimg tools/fimg2pnm tools/fimgops \
|
|||||||
cp v4l2/grabvidseq v4l2/video-infos \
|
cp v4l2/grabvidseq v4l2/video-infos \
|
||||||
/usr/local/bin
|
/usr/local/bin
|
||||||
|
|
||||||
|
cp Fonderie/interpolator Fonderie/fonderie \
|
||||||
|
Fonderie/singlepass \
|
||||||
|
/usr/local/bin
|
||||||
|
|
||||||
A="tools/addtga2fimg"
|
A="tools/addtga2fimg"
|
||||||
if [ -r $A ] ; then
|
if [ -r $A ] ; then
|
||||||
cp $A /usr/local/bin
|
cp $A /usr/local/bin
|
||||||
|
@ -79,8 +79,7 @@ if( ! fimg_type_is_valid(head->type) ) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
printf(" type %d %s\n", head->type, fimg_str_type(head->type));
|
printf(" type %d %s\n", head->type, fimg_str_type(head->type));
|
||||||
printf(" dims %d x %d\n",
|
printf(" dims %d x %d\n", head->width, head->height);
|
||||||
head->width, head->height);
|
|
||||||
printf(" fval/count %f %d\n", head->fval, head->count);
|
printf(" fval/count %f %d\n", head->fval, head->count);
|
||||||
|
|
||||||
printf(" pixels@ %p %p %p %p\n",
|
printf(" pixels@ %p %p %p %p\n",
|
||||||
@ -249,6 +248,8 @@ if ( ! fimg_type_is_valid(fimg->type) ) {
|
|||||||
|
|
||||||
size = fimg->width * fimg->height * sizeof(float);
|
size = fimg->width * fimg->height * sizeof(float);
|
||||||
memset(fimg->R, 0, size);
|
memset(fimg->R, 0, size);
|
||||||
|
memset(fimg->G, 0, size);
|
||||||
|
memset(fimg->B, 0, size);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -66,8 +66,8 @@ static void help(int lj)
|
|||||||
puts("usage:\n\tfimgops [options] A.fimg B.fimg operator D.fimg");
|
puts("usage:\n\tfimgops [options] A.fimg B.fimg operator D.fimg");
|
||||||
puts("options:");
|
puts("options:");
|
||||||
// puts("\t-g convert output to gray");
|
// puts("\t-g convert output to gray");
|
||||||
puts("\t-k N.N set float value");
|
printf("\t-k N.N\t\tset float value (def=%.3f)\n", global_fvalue);
|
||||||
puts("\t-v increase verbosity");
|
puts("\t-v\t\tincrease verbosity");
|
||||||
pr_opcodes();
|
pr_opcodes();
|
||||||
if (verbosity) fimg_print_version(1);
|
if (verbosity) fimg_print_version(1);
|
||||||
exit(0);
|
exit(0);
|
||||||
@ -107,9 +107,10 @@ int main(int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
int foo, opt, action;
|
int foo, opt, action;
|
||||||
char *operator;
|
char *operator;
|
||||||
|
|
||||||
FloatImg srcA, srcB, dest;
|
FloatImg srcA, srcB, dest;
|
||||||
|
|
||||||
|
global_fvalue = 0.5;
|
||||||
|
|
||||||
while ((opt = getopt(argc, argv, "hk:v")) != -1) {
|
while ((opt = getopt(argc, argv, "hk:v")) != -1) {
|
||||||
switch(opt) {
|
switch(opt) {
|
||||||
case 'g': break;
|
case 'g': break;
|
||||||
|
Loading…
Reference in New Issue
Block a user