single.c 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #include <stdio.h>
  2. #include <unistd.h>
  3. #include <libnet.h>
  4. #include "postprocess.h"
  5. void
  6. print_usage(char *name)
  7. {
  8. fprintf(stderr, "usage: %s [-v] [-q quality] INPUT OUTPUT\n", name);
  9. fprintf(stderr, "Post-process a single .dng bayer raw file to a jpeg file.\n\n");
  10. fprintf(stderr, "Mandatory arguments\n");
  11. fprintf(stderr, "INPUT Input filename, should be a .dng file\n");
  12. fprintf(stderr, "OUTPUT Output filename, should be a .jpg file\n\n");
  13. fprintf(stderr, "Optional arguments\n");
  14. fprintf(stderr, " -v Show verbose debugging output\n");
  15. fprintf(stderr, " -q 90 Set the output jpeg quality [0-100]\n\n");
  16. }
  17. int
  18. main(int argc, char *argv[])
  19. {
  20. int opt;
  21. int verbose = 0;
  22. int quality = 90;
  23. char *input_path;
  24. char *output_path;
  25. while ((opt = getopt(argc, argv, "vq:h")) != -1) {
  26. switch (opt) {
  27. case 'v':
  28. verbose = 1;
  29. break;
  30. case 'q':
  31. quality = atoi(optarg);
  32. break;
  33. case 'h':
  34. print_usage(argv[0]);
  35. exit(0);
  36. case '?':
  37. print_usage(argv[0]);
  38. exit(1);
  39. }
  40. }
  41. if (argc < optind + 2) {
  42. fprintf(stderr, "Missing image parameters\n");
  43. print_usage(argv[0]);
  44. exit(1);
  45. }
  46. input_path = argv[optind];
  47. output_path = argv[optind + 1];
  48. postprocess_setup();
  49. postprocess_single(input_path, output_path, quality, verbose);
  50. return 0;
  51. }