2013-07-21 29 views
0

我正在使用Prime-faces。在這裏,我需要使用java將動態文本添加到圖像的底部。 即我需要「寫」在圖像上,我需要在我想要的PC位置保存帶有文本的圖像。如何在java中添加文本到圖像?

我已經試過這樣:

public void writeToImage() throws MalformedURLException, IOException { 
     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")); 
    } 

如何實現的呢?

+0

通過先告訴我們更多的,包括哪些GUI庫,你可能會使用 - 搖擺? Android的? SWT?還有別的嗎?那麼你有什麼嘗試,你卡在哪裏?請給我們提供重要的細節,可以讓您的問題得到解答而不用猜測。 –

+0

*「如何將文字添加到小圖像?」*您可以將文字添加到大圖像的方式相同,但較小(文字長度/字體較小)。爲了更快地獲得更好的幫助,請發佈[SSCCE](http://sscce.org/)。 –

+0

對不起。下次會做@Hovercraft Full Of Eels –

回答

0

可以使用上一個BufferedImage繪製的圖形對象:

Graphics2D g = (Graphics2D) image.getGraphics(); 
g.drawString("hello", x, y); 
+1

1)別忘了'g.dispose()'2)鑑於它是一個'small image ',則需要考慮正在繪製的文本的FontMetrics或GlyphVector。 –