99 lines
2.0 KiB
C
99 lines
2.0 KiB
C
/*
|
|
* This thing is just a mess !
|
|
*/
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <unistd.h>
|
|
|
|
#include "../floatimg.h"
|
|
|
|
int verbosity;
|
|
|
|
int g_width, g_height;
|
|
|
|
/* --------------------------------------------------------------------- */
|
|
int testfile(char *path)
|
|
{
|
|
int foo, numbers[3];
|
|
|
|
foo = fimg_fileinfos(path, numbers);
|
|
if (foo) {
|
|
#if DEBUG_LEVEL
|
|
fprintf(stderr, "%s -> err %d\n", path, foo);
|
|
#endif
|
|
return foo;
|
|
}
|
|
|
|
fprintf(stderr, "%s \t%d x %d\n",path, numbers[0], numbers[1]);
|
|
|
|
if (FIMG_TYPE_RGB != numbers[2]) {
|
|
fprintf(stderr, "file %s, %d : bad type\n", path, numbers[2]);
|
|
return -7;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
/* --------------------------------------------------------------------- */
|
|
void help(int v)
|
|
{
|
|
puts("cumulator options :");
|
|
puts("\t-v\tincrease verbosity");
|
|
puts("\t-o\tname of output file");
|
|
|
|
if (verbosity) { puts(""); fimg_print_version(1); }
|
|
exit(0);
|
|
}
|
|
/* --------------------------------------------------------------------- */
|
|
int main(int argc, char *argv[])
|
|
{
|
|
int foo, idx;
|
|
int opt;
|
|
char *output_file = "out.fimg";
|
|
FloatImg accu, temp;
|
|
int src_loaded = 0;
|
|
|
|
g_width = g_height = 0;
|
|
|
|
while ((opt = getopt(argc, argv, "ho:v")) != -1) {
|
|
switch(opt) {
|
|
case 'h': help(0); break;
|
|
case 'o': output_file = optarg; break;
|
|
case 'v': verbosity++; break;
|
|
}
|
|
}
|
|
|
|
if (verbosity) fprintf(stderr, "------ cumulfimgs ------\n");
|
|
#if DEBUG_LEVEL
|
|
fprintf(stderr, "argc = %d, optind = %d\n", argc, optind);
|
|
#endif
|
|
|
|
// foo = testfile(output_file);
|
|
// fprintf(stderr, "Output %s -> %d\n", output_file, foo);
|
|
|
|
|
|
for (idx=optind; idx<argc; idx++) {
|
|
|
|
fprintf(stderr, "%5d %s\n", idx, argv[idx]);
|
|
|
|
foo = testfile(argv[idx]);
|
|
fprintf(stderr, "testfile %s -> %d\n", argv[idx],foo);
|
|
|
|
if ( ! src_loaded ) {
|
|
foo = fimg_create_from_dump(argv[idx], &accu);
|
|
fimg_clone(&accu, &temp, 0);
|
|
src_loaded = 1;
|
|
}
|
|
else {
|
|
foo = fimg_load_from_dump(argv[idx], &temp);
|
|
fimg_add_2(&temp, &accu);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
foo = fimg_dump_to_file(&accu, output_file, 0);
|
|
|
|
return 0;
|
|
}
|
|
/* --------------------------------------------------------------------- */
|