繁体   English   中英

将位图保存为任何格式

[英]Save bitmap to any format

对于C#保存位图的方式,我有些困惑。 我目前使用此语句将位图保存到(实际上)任何扩展名(.ico,.dds等)。

Bitmap.Save(FileName);

这实际上适用于我选择的任何扩展名,但是我怀疑它是否以正确的格式保存。 说疑惑的原因是因为我在这里找到另一篇文章, 如何将位图另存为图标? ,它类似于:

// Create a Bitmap object from an image file.
Bitmap bmp = new Bitmap(sFn);

// Get an Hicon for myBitmap. 
IntPtr Hicon = bmp.GetHicon();

// Create a new icon from the handle. 
 Icon newIcon = Icon.FromHandle(Hicon);

//Write Icon to File Stream
System.IO.FileStream fs = new System.IO.FileStream(destFileName, System.IO.FileMode.OpenOrCreate);
newIcon.Save(fs);

这显然是不同的。 有两个问题:

  1. 如果第二种方法是“正确的”方法,第一种方法如何/如何起作用?
  2. 我需要为每个我希望支持的扩展名自定义保存属性,还是第一种方法足以满足任何扩展名?

正确的方法是使用原始的Bitmap.Save(Filename)但是您缺少ImageFormat变量,该变量基本上将根据指定格式的图像进行实际转换。

当前,您使用它的方式将导致一个名为“ somefile.somextension”的文件,但没有图标对象的实际内容。

最好的方法是使用:

Bitmap.Save(String, ImageFormat)

例如,保存一个.ico文件:

Bitmap.Save(String, System.Drawing.Imaging.ImageFormat.Icon)

希望这有帮助,祝你好运。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM