From 112c6738c435416b574157fdcd00dc8c87968edd Mon Sep 17 00:00:00 2001 From: Klemek Date: Wed, 4 Jun 2025 16:13:57 +0200 Subject: [PATCH] feat: variation range --- src/args.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/args.c b/src/args.c index 33e8414..4698bd8 100644 --- a/src/args.c +++ b/src/args.c @@ -21,6 +21,7 @@ void print_help(int status_code) { "[-s=SLOPE] " "[-c=R,G,B] " "[--var=R,G,B] " + "[-vr=VAR_RANGE]" "[-m]\n\n" "generate a marble-like pattern bitmap image, blazing fast.\n\n" "options:\n" @@ -33,8 +34,9 @@ void print_help(int status_code) { " -p, --pixel pixel size (default: random)\n" " -s, --slope slope [0-255] (default: random)\n" " -c, --color base color [0-255,0-255,0-255] (default: random)\n" - " -v, --variation base variation [0-255,0-255,0-255] (default: " + " -va, --variation fixed variation [0-255,0-255,0-255] (default: " "random)\n" + " -vr, --var-range random variation range [0-255] (default: 30)\n" " -m, --monochrome black & white generation"); exit(status_code); } @@ -121,6 +123,8 @@ parameters parse_args(int argc, char **argv) { params.file_path = "output.bmp"; params.monochrome = false; + unsigned char var_range = 30; + bool size_set = false; bool slope_set = false; bool start_set = false; @@ -171,9 +175,11 @@ parameters parse_args(int argc, char **argv) { } else if (is_arg(arg, "-c") || is_arg(arg, "--color")) { parse_color(arg, value, params.start); start_set = true; - } else if (is_arg(arg, "-v") || is_arg(arg, "--variation")) { + } else if (is_arg(arg, "-va") || is_arg(arg, "--variation")) { parse_color(arg, value, params.var); var_set = true; + } else if (is_arg(arg, "-vr") || is_arg(arg, "--var-range")) { + var_range = parse_char(arg, value); } else if (is_arg(arg, "-m") || is_arg(arg, "--monochrome")) { params.monochrome = true; } else { @@ -203,9 +209,9 @@ parameters parse_args(int argc, char **argv) { } if (!var_set) { - params.var[0] = rand_uchar(20); - params.var[1] = rand_uchar(20); - params.var[2] = rand_uchar(20); + params.var[0] = rand_uchar(var_range); + params.var[1] = rand_uchar(var_range); + params.var[2] = rand_uchar(var_range); } return params;