2009-06-03 117 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

相关问题