ASP.NET and C#: Write Text on Image
This document was originally published as Tech Blog Content and has been reproduced here to allow the community to correct any inaccuracies or provide other enhancements before updating the original version of this topic
Introduction
This article explains how to write text on an image using ASP.NET and C#. In this article I am using some common library functions and methods.
Image Class and Bitmap Class
- The Image class is an example of an Abstract Class.
- The Bitmap class is an implementation of the Image class and it inherits from the Abstract Image class.
- After implementation we can get the Image Class functionality in the Bitmap Class.
Assemblies Required
The preceding namespace contains Graphics, Bitmaps, Image Editing and Alignment libraries and other libraries
using System.Drawing;
using System.Drawing.Imaging;
C# Code
The following code is to write a text on an image. We can change the functionalities based on our requirements.
//creating a image object
System.Drawing.Image bitmap = (System.Drawing.Image)Bitmap.FromFile(Server.MapPath("onam.jpg")); // set image
//draw the image object using a Graphics object
Graphics graphicsImage = Graphics.FromImage(bitmap);
//Set the alignment based on the coordinates
StringFormat stringformat = new StringFormat();
stringformat.Alignment = StringAlignment.Far;
stringformat.LineAlignment = StringAlignment.Far;
StringFormat stringformat2 = new StringFormat();
stringformat2.Alignment = StringAlignment.Center;
stringformat2.LineAlignment = StringAlignment.Center;
//Set the font color/format/size etc..
Color StringColor = System.Drawing.ColorTranslator.FromHtml("#933eea");//direct color adding
Color StringColor2 = System.Drawing.ColorTranslator.FromHtml("#e80c88");//customise color adding
string Str_TextOnImage = "Happy";//Your Text On Image
string Str_TextOnImage2 = "Onam";//Your Text On Image
graphicsImage.DrawString(Str_TextOnImage, new Font("arial", 40,
FontStyle.Regular), new SolidBrush(StringColor), new Point(268, 245),
stringformat); Response.ContentType = "image/jpeg";
graphicsImage.DrawString(Str_TextOnImage2, new Font("Edwardian Script ITC", 111,
FontStyle.Bold), new SolidBrush(StringColor2), new Point(145, 255),
stringformat2); Response.ContentType = "image/jpeg";
bitmap.Save(Response.OutputStream, ImageFormat.Jpeg);
Graphics Bitmap
A Bitmap is an object used to work with images defined by pixel data and you can draw the image object using a Graphics object. Here's the code:
//creating a image object
System.Drawing.Image bitmap = (System.Drawing.Image)Bitmap.FromFile(Server.MapPath("onam.jpg")); // set image
//draw the image object using a Graphics object
Graphics graphicsImage = Graphics.FromImage(bitmap);
Formatting the string
Change Text Alignment based on the coordinates:
//Set the alignment based on the coordinates
StringFormat stringformat = new StringFormat();
stringformat.Alignment = StringAlignment.Far;
stringformat.LineAlignment = StringAlignment.Far;
StringFormat stringformat2 = new StringFormat();
stringformat2.Alignment = StringAlignment.Center;
stringformat2.LineAlignment = StringAlignment.Center;
Text On Image
Set the font color, size, format.
string Str_TextOnImage = "Happy";//Your Text On Image
string Str_TextOnImage2 = "Onam";//Your Text On Image
graphicsImage.DrawString(Str_TextOnImage, new Font("arial", 40,
FontStyle.Regular), new SolidBrush(StringColor), new Point(268, 245),
stringformat); Response.ContentType = "image/jpeg";
graphicsImage.DrawString(Str_TextOnImage2, new Font("Edwardian Script ITC", 111,
FontStyle.Bold), new SolidBrush(StringColor2), new Point(145, 255),
stringformat2); Response.ContentType = "image/jpeg";
String Color
Adding the string color in the following two ways.
Color StringColor = System.Drawing.Color.Red;//direct color adding
Color StringColor = System.Drawing.ColorTranslator.FromHtml("#933eea");//customise color adding