+ Drawing text on top of a BufferedImage Joris Van den Bogaert Main.java: import java.awt.image.*; import java.awt.event.*; import javax.swing.*; import java.awt.*; public class Main extends JFrame { BufferedImage image; public Main() { addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent we) { System.exit(1); } }); createImage(); } public void createImage() { Image backImage = new javax.swing.ImageIcon("mong.jpg").getImage(); int width = backImage.getWidth(this); int height = backImage.getHeight(this); image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics2D g2d = image.createGraphics(); g2d.drawImage(backImage, 0, 0, this); g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); Font f = new Font("Mistral", Font.BOLD, 56); g2d.setFont(f); String text = "Philip Elliott"; FontMetrics fm = getFontMetrics(f); int swidth = fm.stringWidth(text); int sheight = fm.getAscent(); GradientPaint gp = new GradientPaint(20, 50, Color.red, 100, 130, Color.yellow, true); g2d.setPaint(gp); g2d.drawString(text, width/2 - swidth/2, height/2 + sheight/2); setSize(width, height); } public void paint(Graphics g) { Graphics2D g2d = (Graphics2D) g; g2d.drawImage(image, null, 0, 0); } public static void main(String []args) { Main main = new Main(); main.setVisible(true); } } Image used:
Drawing text on top of a BufferedImage
Joris Van den BogaertMain.java:
Image used:
