2013-07-21 3 views
0

Я использую Prime-faces. Здесь мне нужно добавить динамический текст в нижней части изображения с помощью java. i.e, мне нужно «написать» на изображении, и мне нужно сохранить изображение с текстом в моем желаемом месте ПК.Как добавить текст в изображение в 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) Учитывая, что это «маленькое изображение ', он будет платить, чтобы учитывать «FontMetrics' или« GlyphVector »от текста, который вырисовывается. –

Смежные вопросы