Share via


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

Output