TextureBrush NoiseBrush(Color[] colors)
{
Bitmap b = new Bitmap(128, 128);
Random r = new Random(128);
for (int x = 0; x <= b.Width - 1; x++)
{
for (int y = 0; y <= b.Height - 1; y++)
{
b.SetPixel(x, y, colors(r.Next(colors.Length)));
}
}
TextureBrush T = new TextureBrush(b);
b.Dispose();
return T;
}
Мне выдаёт ошибку:
"colors" является "переменная", но используется как "метод"
Решение: b.SetPixel(x, y, colors[r.Next(colors.Length)]);
Обновление
Теперь когда пытаюсь вызвать его у меня не получается присвоить цвет:
TextureBrush bodygb = NoiseBrush(
{
Color.FromArgb(34, 29, 23),
Color.FromArgb(50, 45, 39)
});
Как через массив добавить цвет?
Ответ на обновление: например, так:
TextureBrush bodygb = NoiseBrush(
new[]
{
Color.FromArgb(34, 29, 23),
Color.FromArgb(50, 45, 39)
});
Альтернативно, если метод NoiseBrush описать так:
TextureBrush NoiseBrush(params Color[] colors)
то можно будет вызывать проще:
TextureBrush bodygb = NoiseBrush(
Color.FromArgb(34, 29, 23),
Color.FromArgb(50, 45, 39));
Ещё одна проблема с вашим кодом — использование Random. Вы используете всё время одно и тоже значение seed, а значит, результат будет всё время одинаковым. Лучше сделать так: объявить вне метода
static Random r = new Random();
и удалить создание Random в методе.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости