在WPF中工作并尝试从头开始创建BitmapSource。以下代码给出了一个Argument Exception"价值不在预期范围内。"我无法弄清楚原因。我还不熟悉WPF,也许我没有正确使用像素格式?
int width = 12;
int height = 14;
byte[] colorData = new byte[width * height * 4];
for(int i = 0; i < colorData.Length; i++)
{
colorData[i] = 155; //create all pixels same shade of gray
}
BitmapSource bitmap = BitmapSource.Create(width, height, 96, 96, PixelFormats.Bgra32, null, colorData, width);
答案 0 :(得分:2)
BitmapSource.Create
方法的最后一个参数是 stride ,即每个&#34;扫描线&#34;的字节数。
如果像素格式每像素有四个字节,则为4 * width
:
var stride = 4 * width;
var bitmap = BitmapSource.Create(
width, height, 96, 96, PixelFormats.Bgra32, null, colorData, stride);