我正在尝试操作图像,当涉及到位图和图像时,我对我的问题和代码非常陌生。我正在初始化一个字节数组来保存 Bgr24 像素数据,这样我就可以将它传递给 BitmapSource 对象。但是我的像素数组不是“我认为”的正确大小。
最后一行代码实际上是我的问题所在,参数“pixels”向我抛出了以下错误“System.ArgumentException was unhandled Value does not fall in the expected range.”
我初始化这些变量
int imageSize = 100;
double dpi = 96;
int width = 128;
int height = 128;
byte[] pixels = new byte[width * height * 3];
//Create my image....
for (int i = 0; i < imageSize; i++)
{
for (int j = 0; j < imageSize; j++)
{
int ct = myImage[i, j];
pixels[i * imageSize * 3 + j + 0] = (byte)((ct % 16) * 14);
pixels[i * imageSize * 3 + j + 1] = (byte)((ct % 32) * 7);
pixels[i * imageSize * 3 + j + 2] = (byte)((ct % 128) * 2);
}
}//end for
//Create the bitmap
BitmapSource bmpSource = BitmapSource.Create(width, height, dpi, dpi, PixelFormats.Bgr24, null, pixels, width);
我了解我没有正确设置像素阵列。有什么想法吗?