C#MVC 5将动态二进制图像显示为base64

本文关键字:显示 base64 图像 二进制 动态 C#MVC | 更新日期: 2023-09-27 18:21:02

好。我有一个基本的MVC5网络应用程序。我将图像以二进制形式存储在SQL数据库中。到目前为止一切都很好。

我可以上传不同的图像类型:png,jpg,gif。。。

当我读取图像(来自数据库的二进制)并显示它时,我的问题是,如何动态格式化data:image/gif;base64,XXXXXXXXXXXXXXXXXXXXXXXXX

更确切地说,我如何获得它的类型,image/gifimage/pngimage/jpg。。。从那个二进制图像?

C#MVC 5将动态二进制图像显示为base64

使用ImageCodecInfo:

byte[] bytes; //get from DB
...
using (var ms = new System.IO.MemoryStream(bytes)) 
{
    using(var img = Image.FromStream(ms)) 
    {
        var type = GetMimeType(img);
    }
}
public static string GetMimeType(Bitmap image)
{
    var type = ImageCodecInfo.GetImageDecoders().FirstOrDefault(codec => codec.FormatID == image.RawFormat.Guid);
    return type != null ? type.MimeType : "image/unknown";
}