diff options
Diffstat (limited to 'editor/pamditherbw.c')
-rw-r--r-- | editor/pamditherbw.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/editor/pamditherbw.c b/editor/pamditherbw.c index 90e2abd5..36eb7d9e 100644 --- a/editor/pamditherbw.c +++ b/editor/pamditherbw.c @@ -41,6 +41,8 @@ struct cmdlineInfo { unsigned int clusterRadius; /* Defined only for halftone == QT_CLUSTER */ float threshval; + unsigned int randomseed; + unsigned int randomseedSpec; }; @@ -54,7 +56,7 @@ parseCommandLine(int argc, char ** argv, was passed to us as the argv array. -----------------------------------------------------------------------------*/ optEntry *option_def; - /* Instructions to optParseOptions3 on how to parse our options. + /* Instructions to pm_optParseOptions3 on how to parse our options. */ optStruct3 opt; @@ -83,12 +85,14 @@ parseCommandLine(int argc, char ** argv, &valueSpec, 0); OPTENT3(0, "clump", OPT_UINT, &cmdlineP->clumpSize, &clumpSpec, 0); + OPTENT3(0, "randomseed", OPT_UINT, &cmdlineP->randomseed, + &cmdlineP->randomseedSpec, 0); opt.opt_table = option_def; opt.short_allowed = FALSE; /* We have no short (old-fashioned) options */ opt.allowNegNum = FALSE; /* We may have parms that are negative numbers */ - optParseOptions3(&argc, argv, opt, sizeof(opt), 0); + pm_optParseOptions3(&argc, argv, opt, sizeof(opt), 0); /* Uses and sets argc, argv, and some of *cmdlineP and others. */ if (floydOpt + atkinsonOpt + thresholdOpt + hilbertOpt + dither8Opt + @@ -518,7 +522,6 @@ createFsConverter(struct pam * const graypamP, /* Initialize Floyd-Steinberg error vectors. */ MALLOCARRAY_NOFAIL(stateP->thiserr, graypamP->width + 2); MALLOCARRAY_NOFAIL(stateP->nexterr, graypamP->width + 2); - srand(pm_randseed()); { /* (random errors in [-1/8 .. 1/8]) */ @@ -661,8 +664,6 @@ createAtkinsonConverter(struct pam * const graypamP, for (relRow = 0; relRow < 3; ++relRow) MALLOCARRAY_NOFAIL(stateP->error[relRow], graypamP->width + 2); - srand(pm_randseed()); - { /* (random errors in [-1/8 .. 1/8]) */ unsigned int col; @@ -857,6 +858,8 @@ main(int argc, char *argv[]) { parseCommandLine(argc, argv, &cmdline); + srand(cmdline.randomseedSpec ? cmdline.randomseed : pm_randseed()); + ifP = pm_openr(cmdline.inputFilespec); if (cmdline.halftone == QT_HILBERT) |