Revision: 57083
          http://sourceforge.net/p/brlcad/code/57083
Author:   mohitdaga
Date:     2013-08-22 21:06:24 +0000 (Thu, 22 Aug 2013)
Log Message:
-----------
Update pixfade to use libicv. This now uses icv api to fade an image. This 
helps in writting/reading to/from pipes.

Modified Paths:
--------------
    brlcad/trunk/src/util/CMakeLists.txt
    brlcad/trunk/src/util/pixfade.c

Modified: brlcad/trunk/src/util/CMakeLists.txt
===================================================================
--- brlcad/trunk/src/util/CMakeLists.txt        2013-08-22 21:04:13 UTC (rev 
57082)
+++ brlcad/trunk/src/util/CMakeLists.txt        2013-08-22 21:06:24 UTC (rev 
57083)
@@ -118,7 +118,7 @@
 BRLCAD_ADDEXEC(pixdsplit pixdsplit.c libbu)
 BRLCAD_ADDEXEC(pixelswap pixelswap.c libbu)
 BRLCAD_ADDEXEC(pixembed pixembed.c libbu)
-BRLCAD_ADDEXEC(pixfade pixfade.c "libbn;libbu")
+BRLCAD_ADDEXEC(pixfade pixfade.c "libicv;libbu")
 BRLCAD_ADDEXEC(pixfields pixfields.c libbu)
 BRLCAD_ADDEXEC(pixfieldsep pixfieldsep.c libbu)
 BRLCAD_ADDEXEC(pixfilter pixfilter.c libbu)

Modified: brlcad/trunk/src/util/pixfade.c
===================================================================
--- brlcad/trunk/src/util/pixfade.c     2013-08-22 21:04:13 UTC (rev 57082)
+++ brlcad/trunk/src/util/pixfade.c     2013-08-22 21:06:24 UTC (rev 57083)
@@ -43,47 +43,60 @@
  *     straight-forward.
  *
  */
-
 #include "common.h"
 
-#include <stdlib.h> /* for atof() */
-#include <math.h>
+#include <stdlib.h>
+#include <stdio.h>
+
 #include "bio.h"
-
-#include "vmath.h"
+#include "icv.h"
 #include "bu.h"
-#include "bn.h"
 
+int inx=512, iny=512;
+char *out_file = NULL;
+char *in_file = NULL;
 
+
+char usage[] = "\
+Usage: pixfade [-h] [-p percentage] [-f fraction] [-s squaresize] [-w width] 
[-n height] \n\
+                [-o out_file.pix] [file.bw] > [out_file.pix]\n";
+
+double multiplier = 0.5;
+
 int
-get_args(int argc, char **argv, FILE **inpp, int *max, double *multiplier)
+get_args(int argc, char **argv)
 {
     int c;
 
-    while ((c = bu_getopt(argc, argv, "m:p:f:")) != -1) {
+    while ((c = bu_getopt(argc, argv, "p:f:s:w:n:o:h?")) != -1) {
        switch (c) {
-           case 'm':
-               *max = atoi(bu_optarg);
-               if ((*max < 0) || (*max > 255)) {
-                   fprintf(stderr, "pixfade: max out of range");
+            case 'p':
+               multiplier = atof(bu_optarg) / 100.0;
+               if (multiplier < 0.0) {
+                   bu_log("pixfade: percent is negative");
                    bu_exit (1, NULL);
                }
                break;
-           case 'p':
-               *multiplier = atof(bu_optarg) / 100.0;
-               if (*multiplier < 0.0) {
-                   fprintf(stderr, "pixfade: percent is negative");
-                   bu_exit (1, NULL);
-               }
-               break;
            case 'f':
-               *multiplier = atof(bu_optarg);
-               if (*multiplier < 0.0) {
-                   fprintf(stderr, "pixfade: fraction is negative");
+               multiplier = atof(bu_optarg);
+               if (multiplier < 0.0) {
+                   bu_log("pixfade: fraction is negative");
                    bu_exit (1, NULL);
                }
                break;
-
+           case 's':
+               inx = iny = atoi(bu_optarg);
+               break;
+           case 'w':
+               inx = atoi(bu_optarg);
+               break;
+           case 'n':
+               iny = atoi(bu_optarg);
+               break;
+           case 'o':
+               out_file = bu_optarg;
+               break;
+           case 'h':
            default:            /* '?' */
                return 0;
        }
@@ -91,28 +104,23 @@
 
     if (bu_optind >= argc) {
        if (isatty(fileno(stdin))) {
-           fprintf(stderr, "pixfade: stdin is a tty\n");
            return 0;
        }
-       *inpp = stdin;
     } else {
-       *inpp = fopen(argv[bu_optind], "r");
-       if (*inpp == NULL) {
-           fprintf(stderr,
-                   "pixfade: cannot open \"%s\" for reading\n",
-                   argv[bu_optind]);
-           return 0;
-       }
+        in_file = argv[bu_optind];
+        bu_optind++;
+        return 1;
     }
 
-    if (argc > ++bu_optind)
-       fprintf(stderr, "pixfade: excess argument(s) ignored\n");
 
-    if (isatty(fileno(stdout))) {
-       fprintf(stderr, "pixfade: stdout is a tty\n");
+    if (!isatty(fileno(stdout)) && out_file!=NULL) {
        return 0;
     }
 
+    if (argc > ++bu_optind) {
+       bu_log("pixfade: excess argument(s) ignored\n");
+    }
+
     return 1;          /* OK */
 }
 
@@ -120,57 +128,19 @@
 int
 main(int argc, char **argv)
 {
-    static char usage[] = "\
-Usage: pixfade [-m max] [-p percent] [-f fraction] [pix-file]\n";
-
-    FILE *inp = NULL;
-    int max = 255;
-    double multiplier = 1.0;
-
-    float *randp;
-    struct color_rec {
-       unsigned char red, green, blue;
-    } cur_color;
-
-    bn_rand_init(randp, 0);
-
-    if (!get_args(argc, argv, &inp, &max, &multiplier)) {
-       (void)fputs(usage, stderr);
-       bu_exit (1, NULL);
+    icv_image_t *img;
+    if (!get_args(argc, argv)) {
+        bu_log("%s", usage);
+        return 1;
     }
 
-    /* fprintf(stderr, "pixfade: max = %d, multiplier = %f\n", max, 
multiplier); */
+    img = icv_read(in_file, ICV_IMAGE_PIX, inx, iny);
+    if (img == NULL)
+        return 1;
+    icv_fade(img, multiplier);
+    icv_write(img, out_file, ICV_IMAGE_PIX);
 
-    for (;;) {
-       double t;
-       size_t ret;
-
-       ret = fread(&cur_color, 1, 3, inp);
-       if (ret != 3) break;
-       if (feof(inp)) break;
-
-       t = cur_color.red * multiplier + bn_rand_half(randp);
-       if (t > max)
-           cur_color.red   = max;
-       else
-           cur_color.red = t;
-
-       t = cur_color.green * multiplier + bn_rand_half(randp);
-       if (t > max)
-           cur_color.green = max;
-       else
-           cur_color.green = t;
-
-       t = cur_color.blue * multiplier + bn_rand_half(randp);
-       if (t > max)
-           cur_color.blue  = max;
-       else
-           cur_color.blue = t;
-
-       ret = fwrite(&cur_color, 1, 3, stdout);
-       if (ret < 3)
-           perror("fwrite");
-    }
+    icv_destroy(img);
     return 0;
 }
 

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Introducing Performance Central, a new site from SourceForge and 
AppDynamics. Performance Central is your source for news, insights, 
analysis and resources for efficient Application Performance Management. 
Visit us today!
http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to