Konvertieren von .dds in .png: Ist XNA wirklich so kompliziert?

Ich habe eine .dds-Datei und möchte eine .png-Datei. Obwohl ich schonhabe über ... herausgefunde das DevIL.NET library, das API-Design einer statischen Klasse wird dort nicht parallelisiert, daher hoffe ich, eine andere Methode zu finden. Dies führte mich zu XNA.

Aber hier ist, wie weit ich mit dieser Idee gekommen bin ...

OK, es sieht so aus, als ob ich das möchteTexture2D Klasse; dann kann ich @ anrufmyTexture2D.SaveAsPng.Aber wie bekomme ich eine davon aus meiner .dds-Datei? Nun, die Dokumentation scheint darauf hinzudeuten, dass ich @ verwenden möchtmyContentManager.Load<Texture2D>.Oh Mist, das war es nicht, das ist eine Art Spiel-Content-Management-System. Nun, meine Suche scheint viele Verwendungen von @ ergeben zu habemyTexture2D.LoadFile; Ich werde dafür gehen.Uh vermisse ich eine Baugruppenreferenz oder so? Oh nein, ich verstehe, sie haben diese Methode zwischen 3.1 und 4.0 entfernt, genial. OK, nun, es ist ein bisschen nerviger, abermyTexture2D.LoadStream ist nicht wirklich ein Problem.Warte, was ist das jetzt? Es will einGraphicsDevice? Hmm, es sieht so aus, als würde man normalerweise eine davon über ein @ bekommeGraphicsDeviceManager ... oh warte, ich gehe diesen Weg nicht wieder, nicht mehrManagers für mich.Ich schätze, ich soll dieses Ding manuell instanziieren. OK, das ist nicht zu schwer ...var myGraphicsDevice = new GraphicsDevice(GraphicsAdapter.DefaultAdapter, GraphicsProfile.HiDef, (äh oh was ist dasPresentationParameters Sache gut OK, ich werde einfach versuchennew PresentationParameters());.Nun, das hat eine Ausnahme ausgelöst. Sie wollen ... einDeviceWindowHandle in meinemPresentationParameters? ABER ICH LÄUFE EINE KONSOLE-APP !!

So hoffe ich wirklich, dass es eine weniger verworrene Art gibt, dies zu tun; vielleicht eine Art StandardGraphicsDevice Ich könnte benutzen. Es fühlt sich ziemlich albern an, ein ganzes Fenster zu erstellen, nur um .dds in .png zu konvertieren.

Alternative Vorschläge für mein Konvertierungsproblem sind willkommen, ich denke, obwohl es sich wahrscheinlich lohnen würde, zu verstehen, wie man XNA im Allgemeinen mit Nicht-XNA-Code verwendet.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage