Xna 以编程方式将BMP(或JPG)转换为DDS转换器

Xna 以编程方式将BMP(或JPG)转换为DDS转换器,xna,image-formats,Xna,Image Formats,我有bmp(或jpg)文件。 我需要用编程方式把它转换成DDS文件(我可以使用C++,C语言有或没有.NET;如果我能看到一些线索,我可以尝试其他语言)< /P> 我知道有一些软件可以做到这一点,但我需要将其集成到我的程序中,这应该是我应用程序上较长操作的一部分 顺便说一句,我的问题是: 1) 有没有开源程序可以做到这一点,这样我就可以研究它的代码了? 2) 在网上有什么教程可以帮助我写这段代码吗 我找不到任何有用的信息 谢谢大家! 我确信有一些独立的转换器可以通过命令行调用它们,如果您需要一个

我有bmp(或jpg)文件。 我需要用编程方式把它转换成DDS文件(我可以使用C++,C语言有或没有.NET;如果我能看到一些线索,我可以尝试其他语言)< /P> 我知道有一些软件可以做到这一点,但我需要将其集成到我的程序中,这应该是我应用程序上较长操作的一部分

顺便说一句,我的问题是: 1) 有没有开源程序可以做到这一点,这样我就可以研究它的代码了? 2) 在网上有什么教程可以帮助我写这段代码吗

我找不到任何有用的信息


谢谢大家!

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

XNA 4.0发生了变化(这些方法已被删除),请尝试写入和读取:


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

C#没有.NET是可能的,例如使用@ReinierTorenbeek well Mono只是.NET框架的另一个实现,严格来说你是对的,但我们都知道我的意思!)dds标记与数据分发服务有关,而与图形文件格式无关。请选择适合您的问题的其他标签。
public static void ConvertToDds(
    GraphicsDevice graphicsDevice, string sourcePath, string targetPath)
{
    Texture.FromFile(graphicsDevice, sourcePath)
        .Save(targetPath, ImageFileFormat.Dds);
}
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); 
    }
}