2012-06-07 128 views
51

Necesito agregar algunos textos a una imagen de tabla existente (png). Lo que significa que tengo que "escribir" en la imagen y necesito la opción de seleccionar la ubicación del texto. ¿Cómo puedo hacerlo? Muchas gracias.¿Cómo agregar texto a una imagen en java?

+0

¿Qué estás usando para representar la imagen? ¿Ya tiene la imagen en algún formato en Java o quiere escribir un programa completo de Java que obtiene una imagen y la devuelve desde el principio con el texto escrito en ella? –

+0

+1, buena pregunta :-) me hizo aprender algo –

Respuesta

101

Es fácil, simplemente obtenga el objeto Graphics de la imagen y dibuje la cadena en la imagen. Este (y la imagen de salida) ejemplo está haciendo eso:

public static void main(String[] args) throws Exception { 
    final BufferedImage image = ImageIO.read(new URL(
     "http://upload.wikimedia.org/wikipedia/en/2/24/Lenna.png")); 

    Graphics g = image.getGraphics(); 
    g.setFont(g.getFont().deriveFont(30f)); 
    g.drawString("Hello World!", 100, 100); 
    g.dispose(); 

    ImageIO.write(image, "png", new File("test.png")); 
} 

salida (test.png):

output

+27

+1 para Lenna en el tema de procesamiento de gráficos;) – Xeon

+0

@Xeon: ¡Siempre! :) – dacwe

+2

Vea también [este ejemplo] (http://stackoverflow.com/a/6296381/418556) usando 'GlyphVector' para otras combinaciones interesantes de texto/imagen. –