C# byte[]转成图片保存
时间: 2024-12-16 18:26:54 浏览: 5
C# byte数组与Image相互转换的方法
在C#中,如果你有一个byte数组代表已经压缩过的图片数据,你可以通过反序列化操作将其转换为`Bitmap`对象,然后保存到本地或其他位置。以下是一个基本步骤的示例,假设你的byte[]数组包含的是JPEG格式的数据:
```csharp
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
public static void ByteArrayToImage(byte[] imageData, string filePath)
{
// 创建一个内存流来临时存储图像数据
using (var memoryStream = new MemoryStream(imageData))
{
// 尝试从内存流中恢复Bitmap
try
{
// 使用Image.FromStream加载数据
Bitmap imageBitmap = Image.FromStream(memoryStream);
// 检查是否成功解码(例如,可能是因为格式错误)
if (imageBitmap == null)
throw new Exception("Failed to decode image data");
// 保存Bitmap到指定的文件路径
imageBitmap.Save(filePath, ImageFormat.Jpeg);
}
catch (Exception ex)
{
// 如果发生错误,记录日志或抛出异常
Console.WriteLine($"Error saving image: {ex.Message}");
throw;
}
}
}
```
在这个例子中,我们首先创建一个MemoryStream,然后尝试从该流中加载图像。如果`FromStream`成功,我们就保存这个`Bitmap`到给定的文件路径;如果失败,比如图片格式不是预期的,我们将捕获异常。
阅读全文