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