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

Output