import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;

public class TextArt extends Canvas {

    String STRING = "Hello World!";
    BufferedImage bi;
    TexturePaint myPaint;

    public TextArt(String filename) {
	ImageIcon ii = new ImageIcon(filename);
	Image im = ii.getImage();
	bi = new BufferedImage(im.getWidth(this),im.getHeight(this),BufferedImage.TYPE_3BYTE_BGR);
	bi.getGraphics().drawImage(im,0,0,this);
	setSize(im.getWidth(this),im.getHeight(this));
	myPaint = new TexturePaint(bi,new Rectangle(0,0,im.getWidth(this)/10,im.getHeight(this)/10));
    }
    
    public void paint(Graphics g) {
	Graphics2D g2 = (Graphics2D)g;
	g2.setPaint(myPaint);
	Font font = new Font("Serif",Font.PLAIN,128);
	g2.setFont(font);
	g2.drawString(STRING,50,150);
    }
    
    public static void main(String[] args) {
	JFrame f = new JFrame("TextArt demo");
	f.getContentPane().add(new TextArt("jim.graham.gif"));
	f.pack();
	f.setVisible(true);
	f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
	
}
