【发布时间】:2013-02-04 11:30:51
【问题描述】:
我有一个 .dds 文件,我想要一个 .png 文件。虽然我已经found out aboutDevIL.NET library,但是一个静态类的API设计并没有并行化,所以我希望找到另一种方法。这让我想到了 XNA。
但是,这就是我对这个想法的了解......
- 好的,看起来我想要这个
Texture2D类;然后我可以打电话给myTexture2D.SaveAsPng。 - 但是如何从我的 .dds 文件中获取其中之一呢?那么文档似乎表明我想使用
myContentManager.Load<Texture2D>。 - 哦,废话,不是,那是某种游戏内容管理系统。好吧,我的搜索似乎发现了
myTexture2D.LoadFile的很多用法;我会去的。 - 呃,我是缺少程序集引用还是什么?哦不,我明白了,他们在 3.1 和 4.0 之间删除了该方法,太棒了。好的,好吧,这有点烦人,但
myTexture2D.LoadStream并不是真正的问题。 - 等等,这是什么?它想要一个
GraphicsDevice?嗯,看起来人们通常会通过GraphicsDeviceManager获得其中之一...哦等等,我不会再走那条路了,我不会再有Managers 了。 - 我想我应该手动实例化这个东西。好吧,这不是太难...
var myGraphicsDevice = new GraphicsDevice(GraphicsAdapter.DefaultAdapter, GraphicsProfile.HiDef,(哦哦这是什么PresentationParameters好吧好吧我试试new PresentationParameters());。 - 这引发了异常。他们想要...在我的
PresentationParameters中有一个DeviceWindowHandle? 但我正在运行一个控制台应用程序!!
所以我真的希望有一种不那么复杂的方式来做到这一点;也许我可以使用某种默认的GraphicsDevice。创建一个完整的窗口只是为了将 .dds 转换为 .png 感觉很愚蠢。
我想,欢迎针对我的转换问题提出其他建议,尽管了解如何从一般的非 XNA 代码中使用 XNA 可能是值得的。
【问题讨论】:
标签: c# xna png image-conversion