从流中间加载Texture2D

时间:2013-03-07 00:02:37

标签: file xna texture2d

我想知道是否可以在XNA中使用Texture2D.FromStream()从流的中间加载纹理。我的想法是,我有一个动画系统,可以将肢体的纹理直接保存到包含其他信息的文件中,如时间,名称等等......我的问题出现在尝试加载文件时,当它到达加载纹理。我得到一个InvalidOperationExecption,没有真正的细节。到目前为止,这是我的代码:

写作:

...         
//writes the name
binWriter.Write(name);

if (texture != null)
{
    binWriter.Write(true);
    //save the texture into the stream
    texture.SaveAsPng(binWriter.BaseStream, texture.Width, texture.Height);
}
else
    binWriter.Write(false);

//writes the ID of the parent limb
binWriter.Write(system.getParentID((Limb)parent));
...

读:

...
string name = binReader.ReadString();

Texture2D tex = null;

//gets the texture if it exists
bool texture = binReader.ReadBoolean();
if (texture)
    tex = Texture2D.FromStream(graphics, binReader.BaseStream);

//finds the index of the parent limb
int parentID = binReader.ReadInt32();
...

任何想法?

-Edit-解决了!我使用了getData()和setData()方法,并将数据作为一个uints数组写入和读取。

0 个答案:

没有答案