2009-06-03 40 views
1

我發現使用BmpBitmapEncoder呈現任何類型的圖像的作品,我唯一需要做的是發送正確的格式在文件中保存,如下例所示:對所有圖像格式使用BmpBitmapEncoder

BmpBitmapEncoder encoder = new BmpBitmapEncoder();; 

encoder.Frames.Add(BitmapFrame.Create(renderer)); 
using (System.IO.FileStream fs = System.IO.File.Open("file.png", System.IO.FileMode.OpenOrCreate)) 
{ 
    encoder.Save(fs); 
} 

因此,正如你所看到的,圖像的名稱是「file.png」,並且這個工作正常,它將圖像保存爲PNG(也適用於jpeg,tiff,gif),它可以是加載任何圖像處理應用程序。

我只是想知道它是如何從每種類型使用正確的編碼器(PngBitmapEncoder,JpegBitmapEncoder,GifBitmapEncoder等)來代替。

謝謝。

+0

你能證實它實際上保存了png/jpg格式嗎?通過比較文件大小和標題與.bmp? – 2009-06-03 17:26:08

回答

2

您必須使用正確的編碼器PngBitmapEncoder,JpegBitmapEncoder,GifBitmapEncoder。

您以這種方式保存的文件始終是BMP!

測試中發生的情況是,您正在使用的圖像處理應用程序忽略擴展名並將真實文件格式識別爲BMP。

+0

哦,這是有道理的,我實際上做了一些擴展識別邏輯來選擇正確的轉換器,我只是想知道有什麼不同。 謝謝! – Carlo 2009-06-03 17:23:21

相關問題