我有一個.dds文件,我想要一個.png文件。雖然我已經found out aboutDevIL.NET library,那麼一個靜態類的API設計不會並行化,所以我希望找到另一種方法。這導致我到XNA。將.dds轉換爲.png:XNA是否真的如此複雜?
但是,這裏有多遠我有這個想法了......
- OK,它看起來像我希望這個
Texture2D
類;那麼我可以撥打myTexture2D.SaveAsPng
。 - 但是,如何從我的.dds文件中獲得其中一個?那麼文檔似乎表明我想使用
myContentManager.Load<Texture2D>
。 - 哦,廢話,那不是它,這是某種遊戲內容管理系統。那麼,我的搜索似乎已經出現了很多使用
myTexture2D.LoadFile
;我會爲此而努力的。 - 呃,我是否缺少程序集引用或其他?哦,不,我明白了,他們在3.1和4.0之間移除了這個方法,真棒。好的,好吧,這有點煩人,但
myTexture2D.LoadStream
不是一個真正的問題。 - 等一下這是什麼?它想要一個
GraphicsDevice
?嗯,它看起來像一個通常通過GraphicsDeviceManager
其中一個......哦,等等,我不會再走這條道路,對我來說沒有更多的Manager
s。 - 我想我應該手動實例化這個東西。 OK以及這是不是太硬...
var myGraphicsDevice = new GraphicsDevice(GraphicsAdapter.DefaultAdapter, GraphicsProfile.HiDef,
(嗯哦,這是什麼東西PresentationParameters
也OK我就嘗試new PresentationParameters());
。 - 嗯,這引發了異常,他們想要的。......在我
PresentationParameters
?一個DeviceWindowHandle
但我運行的控制檯APP!
所以我真的很希望有一個這樣做的少令人費解的方式;也許某種默認GraphicsDevice
,我可以用的感覺非常愚蠢創建一個完整的窗口只是爲了將.dds轉換爲.png
我的轉換的替代建議有問題我想,儘管從一般的非XNA代碼中理解如何使用XNA可能是值得的。