Мне нужно нарисовать изображение из целочисленных значений. Они хранятся в List<int>[]
. Список содержит 5081 массивов с 2048 значениями каждый. Каждое значение составляет от 0 до 1000, а один int - цвет для одного пикселя, поэтому он имеет оттенки серого.C# draw bitmap from integer
Я знаю, как это сделать с помощью setpixel, но это слишком медленно.
for (int y = 0; y < channelId.Length; y++) {
for (int x = 0; x < channelId[y].Count; x++) {
int myColor = (channelId[y].ElementAt(x) * 255)/1000;
if (myColor > 255) {
myColor = 255;
} else if (myColor < 0) {
myColor = 0;
}
bmp.SetPixel(x, y, Color.FromArgb(myColor, myColor, myColor));
}
}
Я знаю, что здесь есть похожие вопросы, как рисовать растровые изображения быстрее, но у них уже есть растровое изображение. Мне нужно сделать изображение из моих значений.
@stuartd, хотя связанный вопрос примерно такой же, он специально помечен 'wpf' (и принятый ответ определенно' wpf', поскольку он использует 'ImageSource' и' WriteableBitmap', а не 'Bitmap', как ожидалось по этому вопросу) – Jcl