import java.awt.*; import java.awt.event.*; import javax.imageio.*; import java.awt.image.BufferedImage; import java.awt.image.DataBuffer; import java.awt.geom.*; import java.io.*; import javax.swing.*; public class JPEGImageIO extends JApplet { // private static Image img; public void init() { setBackground(Color.white); /* img = getToolkit().getImage(JPEGImageIO.class.getResource("duke.jpg")); try { MediaTracker tracker = new MediaTracker(this); tracker.addImage(img, 0); tracker.waitForID(0); } catch (Exception e) {} */ } public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; Dimension d = getSize(); int w = d.width; int h = d.height; try { File f = new File("duke.jpg"); BufferedImage bufi = ImageIO.read(f); g2.setBackground(getBackground()); g2.clearRect(0, 0, d.width, d.height); g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); Graphics2D big = bufi.createGraphics(); big.drawImage(bufi, 0, 0, null); //big.setFont(new Font("Dialog", Font.PLAIN, 10)); //big.setColor(Color.black); //big.drawString("BufferedImage", 4, 12); //To rotate the image, comment the following line g2.drawImage(bufi, 0, 0, this); //comment including g2.drawimage() if you dont want to rotate //double x = 0.5*w; //double y = 0.5*h; //AffineTransform at = new AffineTransform(); //at.rotate(Math.toRadians(90),x,y); //g2.transform(at); //g2.drawImage(bi, 0, 0, null); File file = new File("images", "test14.png"); ImageIO.write(bufi, "png", file); } catch (Exception ex) { g2.setColor(Color.red); g2.drawString("write permissions on images/test.jpg?", 5, h*2-5); } g2.dispose(); } public static void main(String argv[]) { final JPEGImageIO demo = new JPEGImageIO(); demo.init(); JFrame f = new JFrame("Java 2D(TM) Demo - JPEGImageIO"); f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} }); f.getContentPane().add("Center", demo); f.pack(); f.setSize(new Dimension(400,300)); f.show(); } }