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

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

【问题讨论】:

    标签: c# bytearray type-conversion


    【解决方案1】:
    1. 创建一个MemoryStream,在构造函数中传递数组。
    2. 使用Image.FromStream从流中读取图像。
    3. 致电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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-04-17
          • 2011-06-01
          • 2023-03-09
          相关资源
          最近更新 更多