C# &引用;输入数组不是有效的秩";使用CopyPIxels方法时出现错误消息
我收到此错误消息C# &引用;输入数组不是有效的秩";使用CopyPIxels方法时出现错误消息,c#,C#,我收到此错误消息输入数组不是有效的列组。参数名称:此行上的像素source.CopyPixels(结果,宽度*4,0) 有人知道问题出在哪里吗?BitmapSource.CopyPixels需要一维数组作为第一个参数。您正在传递一个二维数组 CopyPixels并没有实际提供一个“矩形”位数组,而是提供了一个连续的位数组——“跨距”指定位图一条扫描线的宽度,这意味着如果我理解正确,给定n位的跨距,位图的第二行从位n+1开始 有关STERID的解释,请参见此链接:该标题让我想起了“巴比是如何形成的
输入数组不是有效的列组。参数名称:此行上的像素source.CopyPixels(结果,宽度*4,0)代码>
有人知道问题出在哪里吗?BitmapSource.CopyPixels需要一维数组作为第一个参数。您正在传递一个二维数组
CopyPixels并没有实际提供一个“矩形”位数组,而是提供了一个连续的位数组——“跨距”指定位图一条扫描线的宽度,这意味着如果我理解正确,给定n位的跨距,位图的第二行从位n+1开始
有关STERID的解释,请参见此链接:该标题让我想起了“巴比是如何形成的?”“巴比是如何形成的?”“巴比是如何形成的?”“巴比是如何形成的?”“巴比是如何形成的?”——有人知道这个问题可能是这个问题的延续:我不明白这不是一个真正的问题。“他发布了代码,并说了他犯了什么错误。”安德鲁同意。在清理完这个问题之后,没有理由关闭它。
[StructLayout(LayoutKind.Sequential)]
public struct PixelColor
{
public byte Blue;
public byte Green;
public byte Red;
public byte Alpha;
}
public PixelColor[,] GetPixels(BitmapSource source)
{
if(source.PixelFormat!=PixelFormats.Bgra32)
source = new FormatConvertedBitmap(source, PixelFormats.Bgra32, null, 0);
int width = source.PixelWidth;
int height = source.PixelHeight;
PixelColor[,] result = new PixelColor[width, height];
source.CopyPixels(result, width * 4, 0);
return pixels;
}