Escribir texto en una imagen

2776 vistas

Versión sencilla:
El método drawString(java.lang.String,int,int) de la clase java.awt.Graphics2D es precisamente lo que necesitamos.



java
  1. /** Escritura en una imagen 'img' */
  2. Graphics2D g2d = (Graphics2D)img.getGraphics();
  3. g2d.drawString("HelloWord",x,y);



Con algo más de sofisticación:
Podemos mejorar un poco el proceso anterior y escoger la fuente y el color del texto. De hecho, la clase java.awt.Graphics2D tiene un cierto número de atributos que pueden aplicarse a todas las operaciones de dibujado: color principal, color de fondo, la fuente,... Bastará con cambiar estos valores mediante el método apropiado.



java
  1. Graphics2D g2d = (Graphics2D)img.getGraphics();
  2. g2d.setFont(new Font("Serif",Font.PLAIN,12));
  3. g2d.setColor(Color.RED);
  4. g2d.drawString("HelloWord",x,y);



¿Qué es (x,y)?:
Las coordenadas (x,y) que pasamos al método drawString corresponden a la esquina inferior izquierda de la primera letra del texto. Para las lenguas como la árabe que se escriben de derecha a izquierda, esta posición corresponderá a la posición del último carácter de la cadena, es decir, al carácter que se escriba más a la izquierda.