溫馨提示×

C#中圖標文件的嵌入與提取

c#
小樊
164
2024-08-12 00:02:45
欄目: 編程語言

在C#中,可以通過使用System.Drawing.Icon類來嵌入和提取圖標文件。以下是一個示例代碼:

  1. 嵌入圖標文件:
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);
                    }
                }
            }
        }
    }
}
  1. 提取圖標文件:
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對象,最后可以將其用于顯示在窗體上。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女