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