Convertir .dds a .png: ¿XNA es realmente tan complicado?
Tengo un archivo .dds y quiero un archivo .png. Aunque yaDescubrió sobre elBiblioteca DevIL.NET, el diseño de API de una clase estática no se paraleliza, por lo que espero encontrar otro método. Esto me llevó a XNA.
Pero, aquí está lo lejos que llegué con esa idea ...
OK, parece que quiero estoTexture2D
clase; entonces puedo llamarmyTexture2D.SaveAsPng
.Pero, ¿cómo obtengo uno de esos de mi archivo .dds? Bueno, la documentación parece indicar que quiero usarmyContentManager.Load<Texture2D>
.Oh, mierda, eso no fue todo, es algún tipo de sistema de gestión de contenido de juegos. Bueno, mi búsqueda parece haber encontrado muchos usos demyTexture2D.LoadFile
; Iré por eso.¿Me estoy perdiendo una referencia de ensamblaje o algo así? Oh no, lo entiendo, eliminaron ese método entre 3.1 y 4.0, increíble. OK, bueno, es un poco más molesto, peromyTexture2D.LoadStream
No es realmente un problema.Espera, ¿qué es esto ahora? Quiere unGraphicsDevice
? Hmm parece que uno generalmente obtiene uno de esos a través de unGraphicsDeviceManager
... oh, espera, no voy por ese camino otra vez, no másManager
S para mí.Supongo que se supone que debo instanciar esto manualmente. Ok, bueno, esto no es demasiado difícil ...var myGraphicsDevice = new GraphicsDevice(GraphicsAdapter.DefaultAdapter, GraphicsProfile.HiDef,
(uh oh que es estoPresentationParameters
bien, voy a intentarlonew PresentationParameters());
.Bueno, eso arrojó una excepción. Quieren ... unDeviceWindowHandle
en miPresentationParameters
? PERO ESTOY EJECUTANDO UNA APLICACIÓN DE CONSOLA !!Así que realmente espero que haya una forma menos complicada de hacer esto; tal vez algún tipo de incumplimientoGraphicsDevice
Podría usar. Se siente bastante tonto crear una ventana completa solo para convertir .dds a .png.
Las sugerencias alternativas para mi problema de conversión son bienvenidas, supongo, aunque probablemente valdría la pena entender cómo usar XNA a partir de código que no sea XNA en general.