为什么将位图保存为PNG

时间:2018-11-01 10:35:21

标签: c#

我的应用程序中有Bitmap对象。为什么Save()方法保存为PNG而不是BMP格式的文件?

Bitmap currentImmage;
...
currentImmage.Save("image.bmp");

2 个答案:

答案 0 :(得分:4)

从文档

Save(String)

  

如果图像的文件格式不存在编码器,则便携式   使用了网络图形(PNG)编码器。当您使用保存方法   将图形图像另存为Windows图元文件格式(WMF)或增强型   图元文件格式(EMF)文件,结果文件另存为可移植文件   网络图形(PNG)文件。发生此现象的原因在于GDI +   .NET Framework的组件没有可以使用的编码器   用于将文件另存为.wmf或.emf文件。

改为使用

Save(String, ImageFormat)

  

以指定格式将该图像保存到指定文件。

ImageFormat Class

  

指定图像的文件格式。

示例

currentImmage.Save("image.bmp",ImageFormat.Bmp);

答案 1 :(得分:2)

来自Bitmap.Save(string) Method上的Microsoft文档:

  

如果图像文件格式不存在编码器,则使用可移植网络图形(PNG)编码器。当您使用Save方法将图形图像另存为Windows图元文件格式( WMF)或增强型图元文件格式(EMF)文件,结果文件将另存为可移植网络图形(PNG)文件。出现此现象的原因是.NET Framework的GDI +组件没有可用于将文件另存为.wmf或.emf文件的编码器。

我相信您想使用Bitmap.Save(String, ImageFormat)保存为其他格式。