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

Jaq*_*har 23 c# bytearray type-conversion

我浏览过并在我的MVC网络应用程序中上传了一个png/jpg文件.我已将此文件存储为数据库中的byte [].现在我想读取byte []并将其转换为原始文件.我怎样才能实现这一目标?

Gel*_*tin 33

  1. 创建一个在构造函数中传递数组的MemoryStream.
  2. 使用Image.FromStream从流中读取图像.
  3. 调用im.Save("theimage.jpg",ImageFormat.Jpeg).

请记住引用System.Drawing.Imaging并对流使用using块.

  • 如果字节数组已包含有效图像,则Image往返无效.只是ues`File.WriteAllBytes()`或者直接将字节数组的内容写入文件的任何东西. (3认同)

Geo*_*ton 20

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

byte[] image = GetImageFromDatabase();
MemoryStream ms = new MemoryStream(image);
Image i = Image.FromStream(ms);
Run Code Online (Sandbox Code Playgroud)


小智 5

可能您在 DotNet Core 3.0 或更高版本上遇到上述解决方案时遇到问题,
所以我的解决方案是:

using(var ms = new MemoryStream(yourByteArray)) {
   using(var fs = new FileStream("savePath", FileMode.Create)) {
      ms.WriteTo(fs);
   }
}
Run Code Online (Sandbox Code Playgroud)