0
У меня есть глупая проблема. Я хочу добавить текст с альфа-0,5 на мою фотографию, чтобы сделать водяной знак, но setColor
не добавляет цвета. Когда я пытаюсь использовать setComposite
, я вижу ошибку «не могу найти символ».Как добавить прозрачный текст к фотографии?
buffered.getGraphics().drawImage(img, 0, 0, null);
buffered.getGraphics().setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,
0.1f));
buffered.getGraphics().setColor(new Color(0.2f,0.3f,0.4f,0.5f));
buffered.getGraphics().setFont(new Font("Serif", Font.PLAIN, 32));
buffered.getGraphics().drawString("text", img.getWidth()/2, img.getHeight()/2);
buffered.getGraphics().dispose();
1) Чтобы лучше помочь, отправьте сообщение [MCVE] или [Short, Self Contained, Correct Example] (http://www.sscce.org/). 2) [В этом примере] (http://stackoverflow.com/a/13440543/418556) показано, как использовать цвет для создания полупрозрачного текста. (Я рассматриваю возможность использовать его, чтобы закрыть это как дубликат, хотя речь идет о преобразованиях в основном.) –
* «Когда я пытаюсь использовать' setComposite', я вижу, что ошибка «не может найти символ». » .. 'buffered.getGraphics()' * Это не совсем относится к заявленной цели, так как нет необходимости использовать композиты для получения полупрозрачного текста. Сказав это, это легко объяснить. [SetComposite (..) '] (http://docs.oracle.com/javase/8/docs/api/java/awt/Graphics2D.html#setComposite-java. awt.Composite-) - это метод ** API 'Graphics2D' **, тогда как ['BufferedImage.getGraphics()'] (http://docs.oracle.com/javase/8/docs/api/java/ awt/image/BufferedImage.html # getGraphics--) возвращает объект «Graphics». –
.. Чтобы получить экземпляр «Graphics2D», вызовите [** 'createGraphics()' **] (http: // docs. oracle.com/javase/8/docs/api/java/awt/image/BufferedImage.html#createGraphics--) –