gpt4 book ai didi

c# - 将位图保存为任何格式

转载 作者:太空宇宙 更新时间:2023-11-03 15:30:09 26 4
gpt4 key购买 nike

我对 C# 保存位图的方式有点困惑。我目前使用此语句将位图保存到(几乎)任何扩展名(.ico、.dds 等)。

Bitmap.Save(FileName);

这实际上适用于我选择的任何扩展,但我怀疑它是否以正确的格式保存。表示怀疑的原因是因为我在这里找到了另一篇文章, How to save Bitmap as icon? ,这样做就像:

// 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.someextension”的文件,但没有图标对象的实际内容。

最好的方法是使用:

Bitmap.Save(String, ImageFormat)

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

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

希望这对您有所帮助,祝您好运。

关于c# - 将位图保存为任何格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34068084/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com