/* * another ugly experiment */ #include #include #include #include #include "../floatimg.h" int verbosity; /* ---------------------------------------------- ~~~~~~~~~~~~~~~~ */ void help(int k) { puts("Usage:\n\textracteur in.fimg w,h,x,y out.???"); exit(k); } /* ---------------------------------------------- ~~~~~~~~~~~~~~~~ */ int main(int argc, char *argv[]) { int foo, opt; FloatImg src, dst; FimgArea51 zone; char *infile = "foo.fimg"; char *outfile = "out.fimg"; verbosity = 0; fprintf(stderr, "*** Extracteur (build: %s %s)\n", __DATE__, __TIME__); while ((opt = getopt(argc, argv, "hv")) != -1) { switch(opt) { case 'h': help(0); break; case 'v': verbosity++; break; default: break; } } if (3 != argc-optind) { fprintf(stderr, "---- %s ----\n", argv[0]); help(1); } if (verbosity) { fimg_print_version(1); } infile = argv[optind]; outfile = argv[optind+2]; fprintf(stderr, "%s\n\t%s --> %s\n", argv[0], infile, outfile); foo = fimg_create_from_dump(infile, &src); if (foo) { fprintf(stderr, "%s: err %d loading image '%s'\n", __func__, foo, infile); exit(1); } if (4 != parse_rectangle( argv[optind+1], &zone, 0) ) { fprintf(stderr, "%s: error in parsing of '%s'\n", argv[0], argv[optind+1]); exit(1); } // zone.w = src.width / 2; zone.h = src.height / 2; // zone.x = src.width / 4 ; zone.y = src.height / 4; if (verbosity) print_rectangle(argv[0], &zone); foo = fimg_create(&dst, zone.w, zone.h, FIMG_TYPE_RGB); if (foo) { fprintf(stderr, "NO PICZ EPIC FAIL %d\n", foo); exit(1); } foo = fimg_extractor(&src, &dst, &zone); if (foo) { fprintf(stderr, "EXTRACTOR EPIC FAIL %d\n", foo); exit(1); } foo = fimg_export_picture(&dst, outfile, 0); if (foo) { fprintf(stderr, "export '%s' -> err %d\n", outfile, foo); exit(1); } return 0; } /* ---------------------------------------------- ~~~~~~~~~~~~~~~~ */