我正在编写一个生成二进制(黑白)图像的程序。白色的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的随机数,它们之间没有任何关系。请记住它是二进制而不是灰度图像。
答案 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));
}
}