Click here to Skip to main content
15,867,686 members
Articles / Web Development / ASP.NET
Article

Graphics on the Fly Directly from ASP.NET Server Control without .ASPX page

Rate me:
Please Sign up or sign in to vote.
1.67/5 (10 votes)
23 Mar 2003 134.3K   40   18
This is a simple method to display a custom drawn graphic on the fly without referencing an .aspx page.

Sample Image - print.png

Introduction

This is a simple article to demonstrate rendering a graphic image on the fly from within a server control without using an .aspx page. One caveat, I have not gotten this method to work at design time, only run time.

On an .aspx page, you would normally create a bitmap with GDI+, and then use this syntax to draw it:

C#
Response.ContentType = "image/jpeg";
objBitmap.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg); 

The only examples I had seen which created graphics on the fly (buttons and charts) all included an .aspx page which they would call from the Render method with a query string. The .aspx page would then render the graphic based on the query string.

Here is a way to render the graphic at runtime without the .aspx page.

C#
using System.Drawing;
using System.Drawing.Imaging;
//... 
protected override void Render(HtmlTextWriter output) 
{ 
  Bitmap objBitmap = new Bitmap(120,30); 
  Graphics objGraphics = Graphics.FromImage(objBitmap);
  //Fill the background 
  objGraphics.FillRectangle(new SolidBrush(Color.LightBlue),0,0,120,30); 
  //Create blue-yellow bullet point 
  objGraphics.FillEllipse(new SolidBrush(Color.Blue),3,9,10,10); 
  objGraphics.FillEllipse(new SolidBrush(Color.Yellow),4,10,8,8); 
  //Draw text next to bullet point 
  objGraphics.DrawString("Submit", new Font("Tahoma",8), 
                     new SolidBrush(Color.Green), 16,8); 
  //Render 
  Page.Response.Clear(); 
  Page.Response.ContentType = "image/jpeg"; 
  objBitmap.Save(Page.Response.OutputStream, 
      System.Drawing.Imaging.ImageFormat.Jpeg); 
  //Tidy up 
  objGraphics.Dispose(); 
  objBitmap.Dispose(); 
}

I am not sure of the implications of writing directly to the Page class from within the Render method, but this works at runtime. If anyone knows of a method that works at design time, please let me know.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Web Developer
United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
GeneralLimited to one image Pin
mohaaron17-Aug-06 10:50
mohaaron17-Aug-06 10:50 
QuestionRendering on the fly in UserControl? Pin
Phoenix 2 You30-Dec-05 11:09
Phoenix 2 You30-Dec-05 11:09 
GeneralI got one wich uses custom image control and no .aspx files Pin
Faiz VP9-Nov-05 8:53
Faiz VP9-Nov-05 8:53 
GeneralShow images WITHOUT using Response.OutputStream Pin
rangaraya26-Feb-04 14:20
rangaraya26-Feb-04 14:20 
GeneralDemo Pin
arody9-Nov-03 13:44
arody9-Nov-03 13:44 
GeneralI'm not convinced.... Pin
p daddy25-Mar-03 3:30
p daddy25-Mar-03 3:30 
GeneralRe: I'm not convinced.... Pin
Andrew S Traub19-May-03 8:10
Andrew S Traub19-May-03 8:10 
GeneralRe: I'm not convinced.... Pin
Member 78770528-Dec-03 9:48
Member 78770528-Dec-03 9:48 
Still interested in that code. Could you post it, or just give me some hints how to do this?
GeneralRe: I'm not convinced.... Pin
Andrew S Traub29-Dec-03 4:31
Andrew S Traub29-Dec-03 4:31 
GeneralRe: I'm not convinced.... Pin
Lisa Liel11-Apr-05 11:40
Lisa Liel11-Apr-05 11:40 
Generalcant get to work Pin
lanzerp23-Mar-03 20:39
lanzerp23-Mar-03 20:39 
GeneralRe: cant get to work Pin
Andrew S Traub19-May-03 8:09
Andrew S Traub19-May-03 8:09 
GeneralRe: cant get to work Pin
Shaman25-Nov-03 5:01
Shaman25-Nov-03 5:01 
GeneralRe: cant get to work Pin
Member 78770526-Dec-03 11:56
Member 78770526-Dec-03 11:56 
GeneralAlternatives and Concerns Pin
Heath Stewart23-Mar-03 18:07
protectorHeath Stewart23-Mar-03 18:07 
GeneralHey Andrew Pin
Nick Parker22-Mar-03 4:01
protectorNick Parker22-Mar-03 4:01 
GeneralRe: Hey Andrew Pin
Andrew S Traub22-Mar-03 10:01
Andrew S Traub22-Mar-03 10:01 
GeneralRe: Hey Andrew Pin
Nick Parker22-Mar-03 11:25
protectorNick Parker22-Mar-03 11:25 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.