Como crear texto como un archivo de imagen con GdiPlusX

28/04/2020

 

Autor: Cesar Ch.

Más que una vez que he visto a la gente pedir como crear imágenes que contengan algún texto. El ejemplo de abajo es realmente muy simple.

  • Crear una fuente
  • Medir el espacio que el texto necesitará
  • Crear una imagen con el tamaño necesario
  • Dibujar el texto
  • Guardar en el disco

 

IMPORTANTE

Para ejecutar se requiere VFP9 y GdiPlusX.

Por favor, asegúrese de que tiene la última versión, porque VFPPaint utiliza algunas de las funciones que se han añadido recientemente.

https://github.com/VFPX/GDIPlusX

   DO LOCFILE("System.prg")

   WITH _SCREEN.System.Drawing
     LOCAL lcText
     lcText = "GdiPlusX is Cool !!!"

    * Crear una fuente
     LOCAL loFont as xfcFont
     loFont = _screen.system.Drawing.Font.New("Verdana", 32, .FontStyle.BoldItalic)

     LOCAL loTmpBmp as xfcBitmap
     loTmpBmp = .Bitmap.New(1,1)

     * Recuperar el objeto gráfico
     LOCAL loTmpGfx AS xfcGraphics
     loTmpGfx = .Graphics.FromImage(loTmpBmp)

     * Medir la cadena
     * tomar el tamaño necesario para el texto
     LOCAL loSize as xfcSize
     loSize = loTmpGfx.MeasureString(lcText, loFont)

     LOCAL loNewBmp as xfcBitmap
     loNewBmp = .Bitmap.New(loSize.Ceiling())

     LOCAL loNewGfx as xfcGraphics
     loNewGfx = .Graphics.FromImage(loNewBmp)

     * Hacer el fondo amarillo
     loNewGfx.Clear(.Color.Yellow)

     * Crear un pincel sólido
     LOCAL loBrush as xfcSolidBrush
     loBrush = .SolidBrush.New(.Color.FromRGB(255,0,0)) && Rojo

     * Crear un objeto StringFormat para dibujar el texto centrado en la imagen
     LOCAL loStringFmt as xfcStringFormat
     loStringFmt = .StringFormat.New()
     loStringFmt.Alignment = .StringAlignment.Center

     * Crear un ractángulo con las medidas del Bitmap
     LOCAL loRect as xfcRectangleF
     loRect = loNewBmp.GetBounds()

     * Dibujar la cadena
     loNewGfx.DrawString(lcText, loFont, loBrush, loRect, loStringFmt)

     * Finalmente guardar la imagen
     loNewBmp.Save("c:\MyText.Png", .Imaging.ImageFormat.Png)

     * Mostrar la imagen
     RUN /N Explorer.exe c:\Mytext.Png
   ENDWITH

 

 


 

Referencias

Artículo original: How to create text as image file with GdiPlusX
http://weblogs.foxite.com/vfpimaging/archive/2007/11/24/5428.aspx
Autor: Cesar Ch.
Traducido por: Luis María Guayán

 


 

 

 



error: Contenido protegido