Search code examples
javastringimagetextgraphics

How to add text to an image in java?


I need to add some texts to an existing table image (png). Which means that I need to "write" on the image and I need the option to select the text location. How can I do it?


Solution

  • It's easy, just get the Graphics object from the image and draw your string onto the image. This example (and output image) is doing that:

    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"));
    }
    

    Output (test.png):

    output