从texture2D只获得1个像素的颜色

时间:2013-02-09 16:18:30

标签: c# colors xna texture2d

目前,我正在使用此方法获取Texture2D

的像素颜色
    Color[] pixelColours = new Color[MyTexture.Width*MyTexture.Height];
    MyTexture.GetData<Color>(pixelColours);
  1. 如您所见,我将每个像素的颜色存储在一个标签中。
  2. texture2D相当巨大:1000像素x 1000像素。
  3. 但我只需要获得1个像素的颜色,这意味着我存储了999.999个无用的其他像素。
  4. 像素在Texture2D上的位置正在移动,因此此代码位于Update()方法中。
  5. 还有其他方法可以在内存成本较低的情况下以非常快的速度获得1个像素吗?

1 个答案:

答案 0 :(得分:2)

GetData方法已重载,允许您指定起始像素以及要获取的元素数量:http://msdn.microsoft.com/en-us/library/bb197093.aspx