如何在asp.net中显示任何类型的图像?

时间:2016-05-10 06:08:09

标签: c# asp.net

如何以不同格式显示图像?

我试过这个。

context.Response.ContentType = "image/jpeg";  

这将只显示jpeg张图片。但我需要以不同的格式显示图像。

1 个答案:

答案 0 :(得分:0)

编辑: 我从评论中了解到你的问题是:

如何将ASP.Net映像的src设置为base64编码数据? 要么 如何在asp.net图像中以不同格式显示来自数据库的图像?

假设您从数据库中获取图像字节,并且您有一个img标记

<img id= "img" runat= "server" />

您可以像这样

创建byte []的扩展方法
// Add a new csharp file to your project
// Add below code to it
public static class DrawingExtensions
{
    public static string ConvertToBase64ImageFormat ( this byte[] b, ImageFormats f)
    {
            // you can find other formats image mimeType and add all you need
           string mt = system.Net.Mime.MediaTypeNames.Image.Tiff;
           string i = Convert.ToBase64String(b);
           return string.Format("data:{0};base64,{1}",mt,i);
    }
}
public enum  ImageFormats
{
     Jpeg
     Png ,
     // And other formats
}

在您的网页表单页面上使用此方法

public partial class DisplayImagePage:Page
{
    public void ibDisplayImg_click(object sender,EventArgs e)
    {
        // read image bytes from database
        Byte[] i= ReadImageFromDatabase();
        img.Src = i.ConvertToBase64ImageFormat(  ImageFormats.Png);
    }
}

如果您想将mime类型用于其他类型的图像,可以使用

 System.Web.MimeMapping

并像这样使用

string mimeType = MimeMapping.GetMimeMapping(fileName);
context.Response.ContentType = mimeType;

更多信息:

https://msdn.microsoft.com/en-us/library/ms525208(v=vs.90).aspx

https://msdn.microsoft.com/en-us/library/system.web.mimemapping.getmimemapping.aspx