I generate a random color this way:
var random = new Random();
var color = String.Format("#{0:X6}", random.Next(0x1000000));
How can I exclude colors brighter than a certain value?
call srand() function with argument 'time(0)' to make sure the system generates a unique random number every time rand() is called. create a function rgb_color_code() that stores random integers between 0 to 255 in the array created in the first step. This is done using the rand() function and modulus operator.
An quite simple way to get rid of the "upper half" of brightes colors is to mask the result via
random.Next(0x1000000) & 0x7F7F7F
One way to do this is to generate colours in the HSV/HSL colour-space, and then convert to RGB (the Wikipedia article tells you how to do that).
The advantage of HSV is that one of the components (V) corresponds to "brightness". So if you generate H, S and V independently and randomly, but restrict V to low values, then you will get dark colours.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With