Introduction
This article shows you how to dynamically write text on a pre-existing image, with ASP.NET and C#.
In my example, I have a picture of my son and I write the words “That’s my boy!”. Also, to show that you can combine graphic drawing and text together, I then draw an oval shape around the word that I just put on the picture.
In order to make this sample work, you need the following references:
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
using System.Drawing.Text;
Also, you might need to play around with where you want your text and oval to go. Remember that both the placement of the text and graphic oval are based on X and Y coordinates. So, if you have to move the text/oval up, then change the value of the Y parameter. If you need to move the text/oval horizontally, then change the value of the X parameter.
There are basically 6 steps for my sample:
- Load your image:
Bitmap bitMapImage = new
System.Drawing.Bitmap(Server.MapPath("dallen.jpg" ) );
Graphics graphicImage = Graphics.FromImage( bitMapImage );
- Set the graphics to be smooth.
graphicImage.SmoothingMode = SmoothingMode.AntiAlias;
- Write your text. Here is where you set your font. The X and Y coordinates are in the new point. (100 = X, 250 = Y).
graphicImage.DrawString( "That's my boy!",
new Font("Arial", 12,FontStyle.Bold ),
SystemBrushes.WindowText, new Point( 100, 250 ) );
- Draw your oval around the text. Note: play around with the numbers to make the oval to the correct size that you want.
graphicImage.DrawArc(new Pen(Color.Red, 3), 90, 235, 150, 50, 0, 360);
- Set the Content Type to jpg and then write your image to the response stream.
Response.ContentType="image/jpeg";
bitMapImage.Save(Response.OutputStream, ImageFormat.Jpeg);
- Clean up.
graphicImage.Dispose();
bitMapImage.Dispose();
Dolph Larson is a Microsoft Certified Solution Developer (MCSD) for .Net, Microsoft Certified Application Developer (MCAD) and Microsoft Certified Database Administrator (MCDBA). He has over fourteen years of professional combined programming, database administration and information technology experience. He currently works as a senior developer for Omnicell and has worked as a senior web developer for eRealty.com. Dolph also managed the programming department for Health Help, Inc. and has seven years of managed health care experience and three years of energy experience.
Right now, I am developing Compact Framework applications for the PocketPC and Winodws Mobile. Go TO http://www.iPocketPC.net for FREE Pocket PC software!!!!!