在C#中,可以通过使用System.Drawing.Icon
类来嵌入和提取图标文件。以下是一个示例代码:
using System;
using System.Drawing;
using System.IO;
using System.Reflection;
class Program
{
static void Main()
{
// 读取图标文件
Icon icon = new Icon("icon.ico");
// 将图标文件嵌入到程序集中
using (MemoryStream ms = new MemoryStream())
{
icon.Save(ms);
byte[] iconData = ms.ToArray();
Assembly assembly = Assembly.GetExecutingAssembly();
string resourceName = "icon.ico";
using (Stream resourceStream = assembly.GetManifestResourceStream(resourceName))
{
if (resourceStream == null)
{
using (Stream output = assembly.GetManifestResourceStream(resourceName))
{
output.Write(iconData, 0, iconData.Length);
}
}
}
}
}
}
using System;
using System.Drawing;
using System.IO;
using System.Reflection;
class Program
{
static void Main()
{
// 从程序集中提取图标文件
Assembly assembly = Assembly.GetExecutingAssembly();
string resourceName = "icon.ico";
using (Stream resourceStream = assembly.GetManifestResourceStream(resourceName))
{
using (MemoryStream ms = new MemoryStream())
{
resourceStream.CopyTo(ms);
Icon icon = new Icon(ms);
// 使用提取的图标文件
// 例如,将图标显示在窗体上
Form form = new Form();
form.Icon = icon;
form.Show();
}
}
}
}
在上面的示例中,首先创建一个Icon
对象,然后将其保存为字节数组,并将其嵌入到程序集中。然后通过程序集中的资源流提取图标文件,并将其转换为Icon
对象,最后可以将其用于显示在窗体上。