2015-11-07 101 views
1

OK。我有一個基本的MVC5網絡應用程序。我將圖像作爲二進制存儲在SQL DB中。迄今爲止都很好。當我讀到的圖像(二進制從數據庫),並顯示它,我怎麼能動態地格式化data:image/gif;base64,XXXXXXXXXXXXXXXXXXXXXXXXX PNG,JPG,GIF ...C#MVC 5顯示動態二進制圖像爲base64

我的問題:

我可以上傳不同的圖像類型?

更確切地說,如何從該二進制圖像中獲取它的類型image/gifimage/pngimage/jpg ...?

回答

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