2012-03-31 110 views
0

我需要將jpeg圖像導入WP7/XNA應用程序及相關的元數據。管理這些圖像的程序將導出到帶有jpg文件的編碼字節[]的XML文件。將jpg字節[]轉換爲Texture2D

我已經寫了一個自定義導入/導入/處理器,它成功導入了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

要回答你的問題的第一部分,你將創建的Texture2D的一個實例,然後通過setData()方法的顏色信息填充它。只要確保維度在構造函數中是正確的。

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

第二部分和潛在的棘手的部分將被確保字節數組是在用於setData()方法的合適的格式,雖然試試看;它可能只是以當前格式工作。 :)

+0

謝謝你。我同意byte []的格式將成爲kicker。我認爲我讀了一些指示它是沿着RGB值位圖行的東西。 – 2012-04-02 02:01:26

+0

不用擔心。將數組按照原樣進行實際發生的情況? – kallotec 2012-04-02 02:34:52

+0

獲取錯誤「值不在預期範圍內」。不過我有點期待。現在它是一個壓縮的JPEG。我懷疑你至少不得不將它轉換爲位圖。謝謝你的幫助 :-) – 2012-04-02 05:37:48