1

我正在使用旧的网络摄像头组件文件将网络摄像头视频流传输到 Texture2D 对象。

我需要有关代码的帮助,因为它是旧的并且 Visual Studio 2010 和 XNA 4 无法识别某些语法。

在方法BufferCB中,修改颜色的两行已经过时了。它说“名称空间 Microsoft.XNA.Framwork.Graphics 中不存在类型或名称空间名称 Color(您是否缺少程序集引用?)”。

这是功能:

public int BufferCB(double SampleTime, IntPtr pBuffer, int BufferLen)
{
    byte[] bgrData = new byte[BufferLen];
    Marshal.Copy(pBuffer, bgrData, 0, BufferLen);
    Color[] colorData = new Color[BufferLen / 3];
    for (int i = 0; i < colorData.Length; i++)
    {
       colorData[i] = new Microsoft.Xna.Framework.Graphics.Color(bgrData[3 * i + 2], bgrData[3 * i + 1], bgrData[3 * i]);
    }
       this.videoTexture.SetData<Microsoft.Xna.Framework.Graphics.Color>(colorData);
            return 0;
 }

for 循环中的行和 for 循环之后的代码行存在颜色问题。

另外,如何在我的游戏类中实例化这个类?

任何帮助都会很棒。谢谢

4

1 回答 1

2

该错误从字面上描述了确切的问题。

Color是 XNA 4 中 Microsoft.Xna.Framework 命名空间的一部分。请参阅:http: //msdn.microsoft.com/en-us/library/microsoft.xna.framework.color%28v=xnagamestudio.35%29.aspx

Color您可以使用 4 个构造函数进行实例化。

Color color = new Color(r, g, b);(其中 rgb 是红色/绿色/蓝色整数)

Color color = new Color(r, g, b);(其中 rgb 是红色/绿色/蓝色浮点数)

Color color = new Color(r, g, b, a);(其中 rgb 是红色/绿色/蓝色/alpha 整数)

Color color = new Color(r, g, b, a);(其中 rgb 是红色/绿色/蓝色/alpha 浮点数)

于 2012-10-11T15:49:38.797 回答