2012-10-26 164 views
3

我有bmp(或jpg)文件。 我需要以編程方式將其轉換爲dds文件(我可以使用C++,C#使用或不使用.NET;我可以嘗試任何其他語言,如果我會看到一些線索)以編程方式將BMP(或JPG)轉換爲DDS轉換器

我知道有軟件可以做這個,但我需要它融入到我的程序中,這應該是我的應用程序中較長操作的一部分。

順便說一句,我的問題是: 1)有沒有這樣的開源程序,所以我可以看看它的代碼? 2)是否有任何教程在網上找到,可以幫助我編寫這段代碼?

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

謝謝!

+0

該dds標籤是關於數據分發服務,而不是圖形文件格式。請選擇適合您問題的不同標籤。 –

回答

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#!

+0

C#沒有.NET是可能的,例如使用[Mono](http://en.wikipedia.org/wiki/Mono_(軟件)) –

+0

@ReinierTorenbeek好了Mono只是.NET Framework的另一個實現,嚴格來說,對了,但我們都知道我的意思! :) –