Escribir texto en una imagen usando ASP.net y C#

En este artículo os vamos a mostrar cómo escribir un texto encima de una imagen que generemos nosotros mismos a partir de otra ya existente. Para ello usaremos los lenguajes de programación ASP.net y C#, dos de los lenguajes más comúnmente utilizados según el ranking de utilización de lenguajes que publicamos hace unos días. Si alguna vez te has visto en la tesitura de crear postales dinámicamente o en algún caso similar, estás de suerte, porque en este tutorial te enseñaremos como llevarlo a cabo en tus propios proyectos. Para ello utilizo también algunas funciones y procedimientos de librerías comunes. ¿Estás preparado para pintar texto sobre tus imágenes para generar nuevas imágenes nuevas? ¡Pues vamos a ello!

Clase Image y Clase Bitmap

  • La clase Image es un ejemplo de clase abstracta.
  • La clase Bitmap es una implementación de la clase de Image y se hereda de la clase Image Abstracta.
  • Después de la implementación podemos obtener la funcionalidad de clase Image en la clase Bitmap.

Código C#

El siguiente código es usado para escribir texto sobre una imagen. Podemos cambiar su funcionamiento en base a nuestras necesidades. Este es el código correspondiente:

//creando el objeto de la imagen
System.Drawing.Image bitmap = (System.Drawing.Image)Bitmap.FromFile(Server.MapPath("onam.jpg")); // set image 
//Dibujo la imagen
Graphics graphicsImage = Graphics.FromImage(bitmap);
 
//Establezco la orientación mediante coordenadas  
StringFormat stringformat = new StringFormat();
stringformat.Alignment = StringAlignment.Far;
stringformat.LineAlignment = StringAlignment.Far;
 
StringFormat stringformat2 = new StringFormat();
stringformat2.Alignment = StringAlignment.Center;
stringformat2.LineAlignment = StringAlignment.Center;
 
//Propiedades de la fuente  
Color StringColor = System.Drawing.ColorTranslator.FromHtml("#933eea");//le damos color
Color StringColor2 = System.Drawing.ColorTranslator.FromHtml("#e80c88");//le damos color
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 y Bitmap

Un Bitmap es un objeto utilizado para trabajar con imágenes las cuales están definidas por los datos que arrojan sus píxeles. Se puede dibujar en el objeto de Image utilizando un objeto Graphics. Echa un vistazo al código siguiente:

//creando el objeto de la imagen
System.Drawing.Image bitmap = (System.Drawing.Image)Bitmap.FromFile(Server.MapPath("onam.jpg")); // set image 
//Dibujo la imagen
Graphics graphicsImage = Graphics.FromImage(bitmap);

Formateando la cadena

Cambiamos la alineación del texto en base a las coordenadas que nosotros definamos:

//Establezco la orientación mediante coordenadas   
StringFormat stringformat = new StringFormat();
stringformat.Alignment = StringAlignment.Far;
stringformat.LineAlignment = StringAlignment.Far;
 
StringFormat stringformat2 = new StringFormat();
stringformat2.Alignment = StringAlignment.Center;
stringformat2.LineAlignment = StringAlignment.Center;

Texto en imágenes

Establece la fuente, el color, el tamaño, el formato...

tring Str_TextOnImage = "Happy";//El texto de la imagen
string Str_TextOnImage2 = "Onam";//El texto de la imagen
 
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";

Color de cadena

Añadiendo color de dos maneras distintas:

Color StringColor = System.Drawing.Color.Red;//direct color adding  
Color StringColor = System.Drawing.ColorTranslator.FromHtml("#933eea");//le damos color  

Namespace

using System.Drawing;
using System.Drawing.Imaging;

El namespace contiene gráficos, mapas de bits, edición de imágenes y alineación...

Salida

Espero que con este sencillo tutorial seas capaz de insertar texto encima de imágenes para crear tus propios crísmas navideños o para otros menesteres. No olvides contarnos tus impresiones cuando lo pongas a prueba en tus desarrollos y sobre todo, hazlo en los comentarios de más abajo. Todos nos podremos aprovechar del efecto que ha tenido este script en lo que estés desarrollando mediante tus comentarios y tus pareceres. Recuerda que también puedes enviarnos tutoriales a través de nuestra sección "Publicar tutorial". Para ello debes loguearte como usuario y hacer uso de la intranet que hemos preparado para ti en esta nueva programacion.net, en la que podrás publicar todo el contenido que desees que será compartido por toda la comunidad que hacemos programacion.net. Lo dicho, esperamos vuestras opiniones y hasta el siguiente artículo.

Fuente: Rajeesh M R

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP