first create Class File:
private void CreateImage()
{
this.canvas = new Bitmap(this.height,this.width);
using (Graphics g = Graphics.FromImage(this.canvas))
{
g.Clear(Color.White);
g.DrawImage(((HeaderImage) new HeaderImage(this.headercolor,this.messageone,this.width,0)).IMAGE,0,0);
g.DrawImage(((HeaderImageWithIcon) new HeaderImageWithIcon(this.headercolor,this.messagetwo,this.width,25)).IMAGE,0,50);
g.DrawString(messagemain, new Font("Verdana",10,FontStyle.Bold),new SolidBrush(Color.Black),0,100, new System.Drawing.StringFormat());
}
}
public class HeaderImage
{
private int height = 30;
private int width = 700;
private int messageoffset = 0;
private Bitmap bmp;
private string message;
protected Graphics g;
protected Color barcolour = Color.Gray;
protected Rectangle rct;
public Bitmap IMAGE
{
get
{
return this.bmp;
}
}
public HeaderImage(Color barcolour,string message,int width,int messageoffset)
{
this.width = width;
this.barcolour = barcolour;
this.message = message;
this.bmp = new System.Drawing.Bitmap(width, height, PixelFormat.Format16bppRgb555);
this.messageoffset = messageoffset;
this.DrawBar();
}
protected virtual void DrawBar()
{
this.g = Graphics.FromImage(this.bmp);
this.g.SmoothingMode = SmoothingMode.AntiAlias;
this.g.Clear(Color.White);
this.rct = new Rectangle(new Point(0,0), new Size(width,bmp.Height-3));
Pen p = new Pen(this.barcolour,3);
this.g.DrawRectangle(p,rct);
this.g.FillRectangle(new LinearGradientBrush(rct, this.barcolour, Color.FromArgb(255,255,255),LinearGradientMode.Vertical),0,0,bmp.Width-1,bmp.Height-1);
this.g.DrawString(this.message, new Font("Verdana",10,FontStyle.Bold),new SolidBrush(this.barcolour),3+this.messageoffset,5, new System.Drawing.StringFormat());
}
}
public class HeaderImageWithIcon : HeaderImage
{
private string imagepath = @"c:\temp\paper.gif";
public HeaderImageWithIcon(string message) : this(Color.Gray,message)
{
}
public HeaderImageWithIcon(Color barcolour,string message) : this(barcolour,message,700)
{
}
public HeaderImageWithIcon(Color barcolour,string message,int width) : base(barcolour,message,width,0)
{
}
public HeaderImageWithIcon(Color barcolour,string message,int width,int messageoffset) : base(barcolour,message,width,messageoffset)
{
}
protected override void DrawBar()
{
base.DrawBar();
Bitmap pic = (Bitmap) Image.FromFile(imagepath);
pic.MakeTransparent(Color.Black);
base.g.DrawImage(pic,1,3,pic.Width,pic.Height);
}
}
in aspx file:
<form id=Form1 method=post runat="server"> <asp:label id=Label2 style="Z-INDEX: 105; LEFT: 112px; POSITION: absolute; TOP: 56px" runat="server" Width="144px" Height="24px" Font-Names="Verdana" Font-Size="X-Small">First Header Text:</asp:label><asp:textbox id=txtTwo style="Z-INDEX: 103; LEFT: 288px; POSITION: absolute; TOP: 80px" runat="server" Width="352px" Font-Names="Verdana">My 2nd heading</asp:textbox><INPUT style="Z-INDEX: 101; LEFT: 544px; WIDTH: 96px; POSITION: absolute; TOP: 104px; HEIGHT: 24px" type=submit value=Submit>
<asp:textbox id=txtOne style="Z-INDEX: 102; LEFT: 288px; POSITION: absolute; TOP: 56px" runat="server" Width="352px" Font-Names="Verdana">My 1st Heading</asp:textbox><asp:label id=Label1 style="Z-INDEX: 104; LEFT: 112px; POSITION: absolute; TOP: 80px" runat="server" Width="152px" Height="24px" Font-Names="Verdana" Font-Size="X-Small">Second Header Text:</asp:label></form>
in code behind File:
if (IsPostBack)
{
if (Request.Params["colour"] != null && Request.Params["height"] != null && Request.Params["width"] != null)
{
this.ci = new CompleteImage(Color.FromName(Request.Params["colour"]),this.txtOne.Text,this.txtTwo.Text,DateTime.Now.ToString(),Convert.ToInt32(Request.Params["height"]),Convert.ToInt32(Request.Params["width"]));
}
else
{
this.ci = new CompleteImage(this.txtOne.Text,this.txtTwo.Text,DateTime.Now.ToString());
}
Response.ContentType = "image/jpeg";
this.ci.CANVAS.Save(Response.OutputStream, ImageFormat.Jpeg);
}
}
please Comment on this