我有 bmp(或 jpg)文件。我需要以编程方式将其转换为 dds 文件(我可以使用带或不带 .NET 的 C++、C#;如果我能在其中看到一些线索,我可以尝试任何其他语言)
我知道有软件可以做到这一点,但我需要将它集成到我的程序中,这应该是对我的应用程序进行较长时间操作的一部分。
顺便说一句,我的问题是:1)是否有任何开源程序可以做到这一点,所以我可以查看它的代码?2)有没有在网络上找到可以帮助我编写这段代码的教程?
我找不到任何有用的信息。
谢谢!
我有 bmp(或 jpg)文件。我需要以编程方式将其转换为 dds 文件(我可以使用带或不带 .NET 的 C++、C#;如果我能在其中看到一些线索,我可以尝试任何其他语言)
我知道有软件可以做到这一点,但我需要将它集成到我的程序中,这应该是对我的应用程序进行较长时间操作的一部分。
顺便说一句,我的问题是: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#!