3

我有 bmp(或 jpg)文件。我需要以编程方式将其转换为 dds 文件(我可以使用带或不带 .NET 的 C++、C#;如果我能在其中看到一些线索,我可以尝试任何其他语言)

我知道有软件可以做到这一点,但我需要将它集成到我的程序中,这应该是对我的应用程序进行较长时间操作的一部分。

顺便说一句,我的问题是:1)是否有任何开源程序可以做到这一点,所以我可以查看它的代码?2)有没有在网络上找到可以帮助我编写这段代码的教程?

我找不到任何有用的信息。

谢谢!

4

1 回答 1

2

我确信有独立的转换器可以通过命令行调用它们,如果你需要一个编程解决方案,我可能想到的最简单的方法是使用内置的 XNA 类来完成这项工作。因为 XNA 处理所有这些文件格式,您可以打开源代码 .bmp 然后将其保存回 .dds(使用Texture类):

public static void ConvertToDds(
    GraphicsDevice graphicsDevice, string sourcePath, string targetPath)
{
    Texture.FromFile(graphicsDevice, sourcePath)
        .Save(targetPath, ImageFileFormat.Dds);
}

XNA 4.0 改变了事情(这些方法已被删除),尝试使用DDSLib写入和Texture2D读取:

public static void ConvertToDds(
    GraphicsDevice graphicsDevice, string sourcePath, string targetPath)
{
    using (var stream = File.Open(sourcePath))
    {
        var texture = Texture2D.FromStream(graphicsDevice, stream);
        DDSLib.DDSToFile(targetPath, true, texture, false); 
    }
}

有关更多详细信息和示例,请参阅链接页面。顺便说一句,没有 .NET 就不能拥有 C#!

于 2012-10-26T09:05:42.503 回答