c# 读取 指定exe 的图标并转化为Sprite
时间: 2024-10-17 20:15:37 浏览: 37
在C#中,如果你想读取指定EXE文件的图标并转换成Sprite(图形对象),可以使用System.Drawing命名空间下的Image类以及UnityEngine.Sprite类。以下是一个基本步骤:
1. 引入所需库:
```csharp
using System.IO;
using System.Drawing;
using UnityEngine; // 如果你在Unity项目中
using UnityEngine.UI; // 如果你想创建UI Sprite
```
2. 加载EXE资源:
```csharp
string exePath = "路径到你的.exe文件";
FileInfo fileInfo = new FileInfo(exePath);
Stream iconStream = fileInfo.OpenRead(); // 打开文件流来获取图标
```
3. 读取图标:
```csharp
Icon icon = Icon.FromStream(iconStream); // 使用Icon类从流中创建图标对象
Bitmap bitmap = icon.ToBitmap(); // 将图标转换为Bitmap对象
```
4. 创建Sprite:
```csharp
// 如果在Unity中
Texture2D texture = new Texture2D(bitmap.Width, bitmap.Height, TextureFormat.RGB24, false);
texture.LoadImage(bitmap.GetHicon()); // 或 LoadRawBytes(bitmap.ToByteArray());
Sprite sprite = new Sprite(texture);
// 如果不在Unity或直接使用.NET Framework
using (MemoryStream ms = new MemoryStream())
{
bitmap.Save(ms, ImageFormat.Png);
byte[] imageData = ms.ToArray();
Texture2D spriteTexture = new Texture2D(bitmap.Width, bitmap.Height, TextureFormat.RGB24, false);
spriteTexture.LoadImage(imageData);
// 现在你可以将这个Texture2D对象用于你的游戏或UI
}
```
5. 清理资源:
```csharp
bitmap.Dispose(); // 关闭Bitmap
iconStream.Close(); // 关闭流
```
阅读全文
相关推荐


















