下面的示例是在 C# 中从 XNA 中的 Texture2D 中提取数据。我的理解是 Texture2D.GetData 最初不能用于将数据拉入二维数组。
如果一维数组包含如下值:1, 2, 3, 4, 5, 6, 7, 8, 9
是否可以将该一维数组复制到二维数组中,然后二维数组具有如下值:
1, 2, 3
4, 5, 6
7, 8, 9
我的目标是将整个数组从一维复制到二维,而不是遍历和计算索引。我当前的代码是这样的:
Color[,] TextureDataTo2DArray(Texture2D texture)
{
Color[] colors1D = new Color[texture.Width * texture.Height];
texture.GetData(colors1D);
Color[,] colors2D = new Color[texture.Width, texture.Height];
for (int x = 0; x < texture.Width; x++)
for (int y = 0; y < texture.Height; y++)
colors2D[x, y] = colors1D[x + y * texture.Width];
return colors2D;
}