如何将字节数组转换为图像文件?

Posted

技术标签:

【中文标题】如何将字节数组转换为图像文件?【英文标题】:How to convert byte array to image file? 【发布时间】:2011-03-07 07:57:13 【问题描述】:

我已在我的 MVC Web 应用程序中浏览并上传了一个 png/jpg 文件。 我已将此文件作为 byte[] 存储在我的数据库中。 现在我想读取 byte[] 并将其转换为原始文件。 我怎样才能做到这一点?

【问题讨论】:

【参考方案1】:
    创建一个MemoryStream,在构造函数中传递数组。 使用Image.FromStream从流中读取图像。 致电theImg.Save("theimage.jpg", ImageFormat.Jpeg)。

记得参考 System.Drawing.Imaging 并为流使用 using 块。

【讨论】:

如果字节数组已经包含有效图像,则图像往返没有意义。只需使用File.WriteAllBytes() 或其他任何方式将字节数组的内容直接写入文件即可。【参考方案2】:

从数据库中的 byte[] 数组创建内存流,然后使用 Image.FromStream。

byte[] image = GetImageFromDatabase();
MemoryStream ms = new MemoryStream(image);
Image i = Image.FromStream(ms);

【讨论】:

【参考方案3】:

您可能对 DotNet Core 3.0 或更高版本上的上述解决方案有疑问 所以我的解决方案是:

using(var ms = new MemoryStream(yourByteArray)) 
   using(var fs = new FileStream("savePath", FileMode.Create)) 
      ms.WriteTo(fs);
   

【讨论】:

【参考方案4】:

或者直接使用这个:

System.IO.File.WriteAllBytes(string path, byte[] bytes)

File.WriteAllBytes(String, Byte[]) Method (System.IO) | Microsoft Docs

【讨论】:

以上是关于如何将字节数组转换为图像文件?的主要内容,如果未能解决你的问题,请参考以下文章

将图像控件转换为字节数组 Asp.Net

如何仅使用 javascript 将图像转换为字节数组以将图像存储在 sql server 上?

如何将字节数组转换为blob

如何将UIImagePicker图像转换为字节数组objective-c

如何将numpy数组图像转换为字节?

如何将base64位的字节数组转换成图片并显示