如何在浏览器中显示动态生成的bmp

时间:2012-11-24 17:37:47

标签: c# asp.net

在.aspx页面上,我使用System.Drawing命名空间创建bmp。当bmp完成后,我将使用以下命令将其发送到浏览器:

using (MemoryStream ms = new MemoryStream())
            {
                bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
                byte[] buffer = ms.GetBuffer();
                HttpContext.Current.Response.OutputStream.Write(buffer, 0, buffer.Length);
                HttpContext.Current.Response.Flush();
            }

这似乎只是将bmp发送到呈现它的浏览器 - 但不是作为html页面。你无法查看源代码 - 它似乎只是一个位图。

我希望将bmp发送到浏览器,但作为html页面的body标签的“内容”。

唯一的方法是将bmp保存(写入)到磁盘,然后将该文件用作图像标记的src吗?或者有没有办法直接将它呈现给浏览器,但仍然是html页面的一部分?

1 个答案:

答案 0 :(得分:2)

最简单的解决方案是使用两个这样的页面:

a.aspx:

<img src="b.aspx" />

b.aspx:

using (MemoryStream ms = new MemoryStream())
{
    bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
    byte[] buffer = ms.GetBuffer();
    HttpContext.Current.Response.OutputStream.Write(buffer, 0, buffer.Length);
    HttpContext.Current.Response.Flush();
}