Compare commits
No commits in common. "090a7719713ebe542d8ed0838b4dc367eec4e0c2" and "8990d1f9a9ce7bd2be93a63b56f42ee74e14d264" have entirely different histories.
090a771971
...
8990d1f9a9
@ -295,21 +295,10 @@ usage : fimgstats [options] file.fimg
|
|||||||
Operations diverses sur ou entre des images.
|
Operations diverses sur ou entre des images.
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
usage:
|
Usage:
|
||||||
fimgops [options] A.fimg B.fimg operator D.fimg
|
fimgops [options] A.fimg B.fimg operator D.fimg
|
||||||
operators:
|
|
||||||
add 1
|
|
||||||
sub 2
|
|
||||||
mix 3
|
|
||||||
mul 4
|
|
||||||
options:
|
|
||||||
-g convert output to gray
|
|
||||||
-k N.N set float value
|
|
||||||
-v increase verbosity
|
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
Pour l'operateur \texttt{mix}, le paramêtre flottant doit
|
|
||||||
être fourni en utilisant l'option \texttt{-k}.
|
|
||||||
|
|
||||||
\subsection{fimg2png, fimg2pnm, fimg2tiff}
|
\subsection{fimg2png, fimg2pnm, fimg2tiff}
|
||||||
\index{fimg2png}\label{fimg2png}
|
\index{fimg2png}\label{fimg2png}
|
||||||
|
@ -7,14 +7,9 @@
|
|||||||
|
|
||||||
int verbosity;
|
int verbosity;
|
||||||
|
|
||||||
/* --------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
float global_fvalue;
|
|
||||||
|
|
||||||
/* --------------------------------------------------------------------- */
|
/* --------------------------------------------------------------------- */
|
||||||
#define OP_ADD 1
|
#define OP_ADD 1
|
||||||
#define OP_SUB 2
|
#define OP_SUB 2
|
||||||
#define OP_MIX 3
|
|
||||||
#define OP_MUL 4
|
#define OP_MUL 4
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int code;
|
int code;
|
||||||
@ -24,7 +19,6 @@ typedef struct {
|
|||||||
Opcode opcodes[] = {
|
Opcode opcodes[] = {
|
||||||
{ OP_ADD, "add" },
|
{ OP_ADD, "add" },
|
||||||
{ OP_SUB, "sub" },
|
{ OP_SUB, "sub" },
|
||||||
{ OP_MIX, "mix" },
|
|
||||||
{ OP_MUL, "mul" },
|
{ OP_MUL, "mul" },
|
||||||
{ 0, NULL }
|
{ 0, NULL }
|
||||||
};
|
};
|
||||||
@ -33,7 +27,7 @@ static void pr_opcodes(void)
|
|||||||
Opcode *optr;
|
Opcode *optr;
|
||||||
puts("operators:");
|
puts("operators:");
|
||||||
for (optr = opcodes; optr->code; optr++) {
|
for (optr = opcodes; optr->code; optr++) {
|
||||||
printf("\t%-15s %d\n", optr->op, optr->code);
|
printf("\t%-20s %d\n", optr->op, optr->code);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
static int look_opcode(char *txt)
|
static int look_opcode(char *txt)
|
||||||
@ -58,10 +52,6 @@ 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");
|
||||||
pr_opcodes();
|
pr_opcodes();
|
||||||
puts("options:");
|
|
||||||
puts("\t-g convert output to gray");
|
|
||||||
puts("\t-k N.N set float value");
|
|
||||||
puts("\t-v increase verbosity");
|
|
||||||
if (verbosity) fimg_print_version(1);
|
if (verbosity) fimg_print_version(1);
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
@ -76,11 +66,6 @@ switch (action) {
|
|||||||
foo = fimg_add(A, B, D); break;
|
foo = fimg_add(A, B, D); break;
|
||||||
case OP_SUB:
|
case OP_SUB:
|
||||||
foo = fimg_sub(A, B, D); break;
|
foo = fimg_sub(A, B, D); break;
|
||||||
case OP_MIX:
|
|
||||||
if (verbosity) fprintf(stderr, "fvalue is %f\n",
|
|
||||||
global_fvalue);
|
|
||||||
foo = fimg_interpolate(A, B, D, global_fvalue);
|
|
||||||
break;
|
|
||||||
case OP_MUL:
|
case OP_MUL:
|
||||||
foo = fimg_add(A, B, D); break;
|
foo = fimg_add(A, B, D); break;
|
||||||
default:
|
default:
|
||||||
@ -94,6 +79,7 @@ return foo;
|
|||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int foo, opt, action;
|
int foo, opt, action;
|
||||||
|
float fvalue;
|
||||||
char *operator;
|
char *operator;
|
||||||
|
|
||||||
FloatImg srcA, srcB, dest;
|
FloatImg srcA, srcB, dest;
|
||||||
@ -101,7 +87,7 @@ FloatImg srcA, srcB, dest;
|
|||||||
while ((opt = getopt(argc, argv, "hk:v")) != -1) {
|
while ((opt = getopt(argc, argv, "hk:v")) != -1) {
|
||||||
switch(opt) {
|
switch(opt) {
|
||||||
case 'h': help(0); break;
|
case 'h': help(0); break;
|
||||||
case 'k': global_fvalue = atof(optarg); break;
|
case 'k': fvalue = atof(optarg); break;
|
||||||
case 'v': verbosity++; break;
|
case 'v': verbosity++; break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -155,8 +141,7 @@ foo = fimg_create(&dest, srcA.width, srcA.height, srcA.type);
|
|||||||
|
|
||||||
foo = exec_operator(&srcA, &srcB, action, &dest);
|
foo = exec_operator(&srcA, &srcB, action, &dest);
|
||||||
if (foo) {
|
if (foo) {
|
||||||
fprintf(stderr, "operator '%s' exec give us a %d\n",
|
fprintf(stderr, "operator exec give us a %d\n", foo);
|
||||||
operator, foo);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
foo = fimg_dump_to_file(&dest, argv[optind+3], 0);
|
foo = fimg_dump_to_file(&dest, argv[optind+3], 0);
|
||||||
|
@ -19,7 +19,7 @@ int foo;
|
|||||||
|
|
||||||
if (3 != argc) {
|
if (3 != argc) {
|
||||||
fimg_print_version(1);
|
fimg_print_version(1);
|
||||||
fprintf(stderr, "usage:\n\t%s foo.png bar.png\n", argv[0]);
|
fprintf(stderr, "usage:\n\t%s foo.fimg bar.png\n", argv[0]);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -33,8 +33,8 @@ if (foo) {
|
|||||||
|
|
||||||
fimg_describe(&fimg, "oups");
|
fimg_describe(&fimg, "oups");
|
||||||
|
|
||||||
foo = fimg_dump_to_file(&fimg, argv[2], 0);
|
foo = fimg_save_as_pnm(&fimg, "t.pnm", 0);
|
||||||
fprintf(stderr, "save as fimg -> %d\n", foo);
|
fprintf(stderr, "save as pnm -> %d\n", foo);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user