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

时间:2015-11-07 10:32:14

标签: c# asp.net-mvc-5

行。我有一个基本的MVC5网络应用程序。我将图像存储为SQL DB中的二进制文件。到目前为止一切都很好。

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

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

更确切地说,如何从该二进制图像中获取它的类型image/gifimage/pngimage/jpg ...

1 个答案:

答案 0 :(得分:1)

使用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";
}