feat: variation range

This commit is contained in:
2025-06-04 16:13:57 +02:00
parent c8ac15891e
commit 112c6738c4
+11 -5
View File
@@ -21,6 +21,7 @@ void print_help(int status_code) {
"[-s=SLOPE] " "[-s=SLOPE] "
"[-c=R,G,B] " "[-c=R,G,B] "
"[--var=R,G,B] " "[--var=R,G,B] "
"[-vr=VAR_RANGE]"
"[-m]\n\n" "[-m]\n\n"
"generate a marble-like pattern bitmap image, blazing fast.\n\n" "generate a marble-like pattern bitmap image, blazing fast.\n\n"
"options:\n" "options:\n"
@@ -33,8 +34,9 @@ void print_help(int status_code) {
" -p, --pixel pixel size (default: random)\n" " -p, --pixel pixel size (default: random)\n"
" -s, --slope slope [0-255] (default: random)\n" " -s, --slope slope [0-255] (default: random)\n"
" -c, --color base color [0-255,0-255,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" "random)\n"
" -vr, --var-range random variation range [0-255] (default: 30)\n"
" -m, --monochrome black & white generation"); " -m, --monochrome black & white generation");
exit(status_code); exit(status_code);
} }
@@ -121,6 +123,8 @@ parameters parse_args(int argc, char **argv) {
params.file_path = "output.bmp"; params.file_path = "output.bmp";
params.monochrome = false; params.monochrome = false;
unsigned char var_range = 30;
bool size_set = false; bool size_set = false;
bool slope_set = false; bool slope_set = false;
bool start_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")) { } else if (is_arg(arg, "-c") || is_arg(arg, "--color")) {
parse_color(arg, value, params.start); parse_color(arg, value, params.start);
start_set = true; 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); parse_color(arg, value, params.var);
var_set = true; 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")) { } else if (is_arg(arg, "-m") || is_arg(arg, "--monochrome")) {
params.monochrome = true; params.monochrome = true;
} else { } else {
@@ -203,9 +209,9 @@ parameters parse_args(int argc, char **argv) {
} }
if (!var_set) { if (!var_set) {
params.var[0] = rand_uchar(20); params.var[0] = rand_uchar(var_range);
params.var[1] = rand_uchar(20); params.var[1] = rand_uchar(var_range);
params.var[2] = rand_uchar(20); params.var[2] = rand_uchar(var_range);
} }
return params; return params;