生成两个数字之间的随机数

时间:2014-10-23 19:17:52

标签: c#

我正在编写一个生成二进制(黑白)图像的程序。白色的ARGB(Alpha,红色,绿色,蓝色)是黑色(0,255,255,255)和(0,0,0,0)黑色。所以我使用Random数字来生成二进制位图

int a = rnd.Next(256);
int r = rnd.Next(256);
int g = rnd.Next(256);
int b = rnd.Next(256);

但是使用这个数字范围会生成一个颜色图像,所以我只需要0或255的随机数,它们之间没有任何关系。请记住它是二进制而不是灰度图像。

2 个答案:

答案 0 :(得分:7)

最简单的方法是:

int a = 255;
int r = rnd.Next(2) * 255;
int g = r;
int b = r;

或者您可以通过以下方式实现相同目标:

Color color = rnd.Next(2) == 0 ? Color.Black : Color.White;

答案 1 :(得分:1)

谢谢大家:) 这种方式对我有用: -

for (int y = 0; y < height; y++)
{
    for (int x = 0; x < width; x++)
    {
        pixel_color = rnd.Next(0, 2);
        if (pixel_color == 0)
        {
            r = 0;
            g = 0;
            b = 0;
        }
        else
        {
            r = 255;
            g = 255;
            b = 255;
        }
        bmp.SetPixel(x, y, Color.FromArgb(r, g, b));
    }
}