c# Byte[] 如何转换成一个图片

在C#中,如果你有一个包含图片数据的byte[]数组(例如从文件读取、网络传输或Imencode方法获得),你可以使用System.Drawing命名空间中的Bitmap类或者System.Drawing.Common包中的Image.FromStream方法将其转换为一个图片对象。这里有两种常见的方法来实现这个转换:

使用MemoryStreamImage.FromStream

这是最常用的方法,因为它不依赖于特定的图片格式,并且可以处理多种图片格式(如JPEG、PNG等)。

using System;  
using System.Drawing; // 需要引用 System.Drawing.Common NuGet包  
using System.IO;  
  
public class ImageConverter  
{  
    public static Image ByteArrayToImage(byte[] byteArray)  
    {  
        using (MemoryStream ms = new MemoryStream(byteArray))  
        {  
            Image returnImage = Image.FromStream(ms);  
            return returnImage;  
        }  
    }  
}

注意:上面的代码示例中,返回的Image对象是一个抽象基类,如果你需要将其转换为具体的类型(如Bitmap),你可以直接进行转换:

Bitmap bitmap = (Bitmap)Image.FromStream(ms);

使用Bitmap构造函数(仅适用于某些格式)

对于某些特定的图片格式(如BMP),你可以直接使用Bitmap的构造函数来从字节数组中加载图片:

using System.Drawing; // 需要引用 System.Drawing.Common NuGet包  
  
public class ImageConverter  
{  
    public static Bitmap ByteArrayToBitmap(byte[] byteArray)  
    {  
        using (MemoryStream ms = new MemoryStream(byteArray))  
        {  
            // 注意:这个构造函数可能不适用于所有图片格式,特别是JPEG和PNG  
            Bitmap bitmap = new Bitmap(ms);  
            return bitmap;  
        }  
    }  
}

但是,请注意,直接使用Bitmap的构造函数可能不适用于所有图片格式,特别是JPEG和PNG等格式。在这些情况下,你应该使用Image.FromStream方法。

注意:在使用System.Drawing命名空间时,你可能需要安装System.Drawing.Common NuGet包,特别是如果你的项目是基于.NET Core或.NET 5/6/7等较新版本的话。在.NET Framework项目中,这个命名空间通常是内置的。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值