import java.awt.*;
import java.awt.geom.*;
import java.awt.font.*;
import java.awt.event.*;
import java.text.AttributedString;
import java.text.AttributedCharacterIterator;

public class MakeImage extends Canvas {

	private Image img;
	int x=0, y=0, c=0;
	Shape shape;
	Rectangle r;
	TextHitInfo hit, hit2;
	TextLayout tl;
	ImageGraphicAttribute theImage;

    public MakeImage() {
	setBackground(Color.white);
        img = getToolkit().getImage("../Art/sky_star.gif");
        try {
            MediaTracker tracker = new MediaTracker(this);
            tracker.addImage(img, 0);
            tracker.waitForID(0);
        } catch (Exception e) {}
    }

    public void paint(Graphics g) {
        Graphics2D g2;
        g2 = (Graphics2D) g;
        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                            RenderingHints.VALUE_ANTIALIAS_ON);
        g2.setRenderingHint(RenderingHints.KEY_RENDERING,
                            RenderingHints.VALUE_RENDER_QUALITY);

        Font f = new Font("Times",Font.BOLD, 24);
	AttributedString ats = new AttributedString("The  Starry  Night");
	ImageGraphicAttribute iga = new ImageGraphicAttribute(img, (int) BOTTOM_ALIGNMENT);
	ats.addAttribute(TextAttribute.CHAR_REPLACEMENT, iga, 4, 5);
        ats.addAttribute(TextAttribute.CHAR_REPLACEMENT, iga, 11, 12);
	ats.addAttribute(TextAttribute.FONT, f, 0, 18);
	AttributedCharacterIterator iter = ats.getIterator();

        FontRenderContext frc = g2.getFontRenderContext();
        tl = new TextLayout(iter, frc);
        g2.setColor(Color.red);
	tl.draw(g2, (float)20, (float)30);
    }

    public static void main(String s[]) {
        WindowListener l = new WindowAdapter() {
            public void windowClosing(WindowEvent e) {System.exit(0);}
            public void windowClosed(WindowEvent e) {System.exit(0);}
        };

        Frame f = new Frame("2D Text");
        f.addWindowListener(l);
        f.add("Center", new MakeImage());
        f.pack();
        f.setSize(new Dimension(400, 300));
        f.show();
    }
}
