void IHttpHandler.ProcessRequest(HttpContext context) { int bookId = -1; if (context.Request["id"] != null) { int.TryParse(context.Request["id"], out bookId); } NDrawingDocument document = CreateDocument(bookId); NCanvas canvas = CreateCanvas(document); document.RefreshAllViews(); canvas.DoLayout(); MemoryStream ms = new MemoryStream(); NPngImageFormat imageFormet = new NPngImageFormat(); using (INImage image = CreateImage(document, canvas, canvas.Size, imageFormet)) { image.SaveToStream(ms, imageFormet); } byte[] bytes = ms.GetBuffer(); context.Response.ContentType = "image/png"; context.Response.OutputStream.Write(bytes, 0, bytes.Length); context.Response.Cache.SetCacheability(HttpCacheability.ServerAndPrivate); }