将jpg Byte []转换为Texture2D

时间:2012-03-31 23:27:41

标签: xna texture2d

我需要将jpeg图像导入到具有相关元数据的WP7 / XNA应用程序中。管理这些映像的程序导出到带有jpg文件的编码byte []的XML文件。

我编写了一个自定义导入器/处理器,它成功地将重新编码的对象导入到我的XNA项目中。

我的问题是,给定jpg的byte [],将它转换回Texture2D的最佳方法是什么。

// 'Standard' method for importing image
Texture2D texture1 = Content.Load<Texture2D>("artwork"); // Uses the standard Content processor "Texture - XNA Framework" to import an image.

// 'Custom' method
var myCustomObject = Content.Load<CompiledBNBImage>("gamedata"); // Uses my custom content Processor to return POCO "CompiledBNBImage"
byte[] myJPEGByteArray = myCustomObject.Image; // byte[] of jpeg
Texture2D texture2 = ???? // What is the best way to convert myJPEGByteArray to a Texture2D?

非常感谢你的帮助。 : - )

DS

1 个答案:

答案 0 :(得分:1)

要回答问题的第一部分,您将创建Texture2D的实例,然后通过SetData()方法用颜色信息填充它。只需确保构造函数中的维度是正确的。

Texture2D tex = new Texture2D(graphics, 100, 100);
tex.SetData(byteArray);

第二部分,可能是棘手的部分,将确保字节数组的格式为SetData()方法,尽管尝试一下;它可能只是以当前格式工作。 :)