我只创建一个随机实例,但即便如此,随机数也是一样。
int x, y;
Random random = new Random();
// Loop through the images pixels to reset color.
for (x = 0; x < image1.Width; x++)
{
for (y = 0; y < image1.Height; y++)
{
int randomNumber = random.Next(1, 2);
if (randomNumber != 1) continue;
Color pixelColor = image1.GetPixel(x, y);
Color newColor = Color.FromArgb(255, 255, 255);
image1.SetPixel(x, y, newColor);
}
}
答案 0 :(得分:9)
您每次都获得相同的号码(1
),因为您使用Random.Next()
和minValue = 1
致电maxValue = 2
:
Random.Next Method (Int32, Int32)
minValue(最小值)
返回的随机数的包含下限。
包括maxValue
返回的随机数的独占上限。 maxValue必须 大于或等于minValue。
致电Random.Next(1, 2)
将始终返回1
。
这并不是100%清楚你想要达到的目标,但如果你只想改变50%的颜色,你应该做以下事情:
for (x = 0; x < image1.Width; x++)
{
for (y = 0; y < image1.Height; y++)
{
if (random.Next() % 2 != 1) continue;
Color pixelColor = image1.GetPixel(x, y);
Color newColor = Color.FromArgb(255, 255, 255);
image1.SetPixel(x, y, newColor);
}
}