如何将字节数组转换为图像文件?
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
【讨论】:
以上是关于如何将字节数组转换为图像文件?的主要内容,如果未能解决你的问题,请参考以下文章
如何仅使用 javascript 将图像转换为字节数组以将图像存储在 sql server 上?