2012-01-13 78 views
1

我正在将Base64代码转换为图像,我正在使用以下方式保存并显示该图像。在ASP.NET C中显示图像#

var kpin = Base64ToImage(TextBox1.Text); 
kpin.Save(@"e:\myim.png"); 
Image1.ImageUrl = @"e:\myim.png"; 

和类是

public Image Base64ToImage(string base64String) 
{ 
    byte[] imageBytes = Convert.FromBase64String(base64String); 
    MemoryStream ms = new MemoryStream(imageBytes, 0, 
     imageBytes.Length); 
    ms.Write(imageBytes, 0, imageBytes.Length); 
    Image image = Image.FromStream(ms, true); 
    return image; 
} 

这个过程工作正常,但我需要的图像不被保存在硬盘中。如何直接显示此图像而不保存到硬盘并恢复。

回答

1

取而代之的是Image1.ImageURL设置为你的图片的路径,可以代替做的几件事情之一:

  1. 使用与Base64的数据直接img标签在里面 - http://www.sweeting.org/mark/blog/2005/07/12/base64-encoded-images-embedded-in-html 并非所有浏览器支持这一点。
  2. 创建一个Action或Webform(取决于您是否使用ASP.NET MVC),将输入任何内容作为输入来检索或生成Base64编码数据,然后设置响应标头以提供正确的内容类型(image/png或其他),并将图像直接写入Response.OutputStream(或在ASP.NET MVC中使用ContentResult)。通过Stackoverflow的例子吨如何做。

-M

+0

非常感谢!这对我有用! – 2012-01-13 17:51:04

0

完全不与图像对象打扰,只是做直销:

public void Base64ToResponse(string base64String) 
{ 
    Response.ContentType = "text/png"; //or whatever... 
    byte[] imageBytes = Convert.FromBase64String(base64String); 
    Response.OutputStream(imageBytes, 0, imageBytes.Length); 
}