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
в методе.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Я немного запутался, вот есть два куска кода, в котором в одном из них поле помечено модификатором static -значит оно глобальное и объявлено...
Есть следующая задача: Приложение A посылает приложению B данныеПриложение B эти данные получает и уведомляет приложение A, после чего осуществляет...