canvas as image (jpeg)

hello ,i am working on canvas and i want to save that canvas as image (jpeg ) ,is it posible ,then plz tell me how.Thanks.....
[140 byte] By [vivinda] at [2007-11-27 8:43:50]
# 1

import java.awt.*;

import java.awt.event.*;

import java.awt.geom.CubicCurve2D;

import java.awt.image.BufferedImage;

import java.io.*;

import javax.imageio.ImageIO;

public class ComponentToImage extends Canvas {

public void paint(Graphics g) {

Graphics2D g2 = (Graphics2D)g;

g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,

RenderingHints.VALUE_ANTIALIAS_ON);

int w = getWidth();

int h = getHeight();

g2.setPaint(getBackground());

g2.fillRect(0,0,w,h);

g2.setPaint(Color.red);

g2.draw(new CubicCurve2D.Double(w/4, h*3/4, -w*3/8, -h/4,

w*11/8, -h/4, w*3/4, h*3/4));

}

private BufferedImage makeImage() {

int w = getWidth();

int h = getHeight();

int type = BufferedImage.TYPE_INT_RGB;

BufferedImage image = new BufferedImage(w,h,type);

Graphics2D g2 = image.createGraphics();

paint(g2);

g2.dispose();

return image;

}

private void save(BufferedImage image) {

String ext = "jpg"; // png, bmp (j2se 1.5+), gif (j2se 1.6+)

File file = new File("componentToImage." + ext);

try {

ImageIO.write(image, ext, file);

} catch(IOException e) {

System.out.println("write error: " + e.getMessage());

}

}

private void saveToFile() {

new Thread(new Runnable() {

public void run() {

try {

Thread.sleep(1000);

} catch(InterruptedException e) {

System.out.println("interrupted");

}

save(makeImage());

}

}).start();

}

public static void main(String[] args) {

ComponentToImage test = new ComponentToImage();

Frame f = new Frame();

f.addWindowListener(closer);

f.add(test);

f.setSize(400,400);

f.setLocation(200,200);

f.setVisible(true);

test.saveToFile();

}

private static WindowListener closer = new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

};

}

crwooda at 2007-7-12 20:44:23 > top of Java-index,Security,Cryptography...