【发布时间】:2011-05-01 20:18:17
【问题描述】:
我需要保存从图像文件(.png、.jpeg、.bmp)加载的位图对象,并将其作为图标 (.ico) 保存到单独的文件中。
首先我尝试将 Bitmap 对象保存到具有 Icon ImageFormat 的文件中:
using System.Drawing;
Bitmap bmp = (Bitmap)pictureBox1.Image;
bmp.Save(@"C:\icon.ico", Imaging.ImageFormat.Icon);
这个失败,因为生成的图标格式不正确,不能用作图标。
接下来是从 Bitmap 获取 HIcon 并将其保存到文件中:
using System.Drawing;
using System.IO;
StreamWriter iconWriter = new StreamWriter(@"C:\icon.ico");
Icon ico = Icon.FromHandle(((Bitmap)pictureBox1.Image).GetHicon())
ico.Save(iconWriter.BaseStream);
iconWriter.Close();
iconWriter.Dispose();
这个也不行。虽然图标文件写得很好,但它只有 16 种颜色和有限的宽度和高度。
我希望能够编写具有自定义宽度和高度的图标,以保留原始图像的颜色。这可以在 .NET 中实现吗?
提前致谢。
【问题讨论】:
-
GetHicon() 确实做得很糟糕。试试这个:codeproject.com/KB/cs/IconLib.aspx
标签: c# .net vb.net icons bitmap