在ASP.NET页面中显示动态生成的位图

时间:2011-09-02 03:59:11

标签: asp.net

我需要在ASP.NET页面上创建一些框图。是否最好通过绘制Bitmap来完成?如何显示这个动态生成的Bitmap对象?

1 个答案:

答案 0 :(得分:2)

创建一个将位图写入响应流的http处理程序。

继承自己的处理程序http://www.dotnetperls.com/ashx

如果你可以使用某种形式的命名约定将文件写入文件系统,那么你就不会一遍又一遍地生成它。

如果您已将其写入文件,则可以使用context.Response.WriteFile(path);

将其写入响应流

如果你想要像下面这样的东西,你需要为响应设置合适的标题。

        context.Response.Cache.SetCacheability(HttpCacheability.Public);
        context.Response.Cache.SetLastModified(lastWrite);
        context.Response.Cache.SetETag(string.Format("\"{0}\"", lastWrite.Ticks));
        context.Response.ContentType = "image/png";

您可以检查传入请求中的这些标头,并返回304之类的内容(之前执行空检查)

if (context.Request.Headers[since] >= lastwrite || context.Request.Headers[eTag] >= lastwriteTicks) {
            context.Response.StatusCode = 304;
            context.Response.StatusDescription = "Not Modified";
            return;
        }

如果您每次都需要生成新鲜事项而不用担心缓存,只需将您的iamge写入context.Response.OutputStream