82 lines
2.3 KiB
Java
82 lines
2.3 KiB
Java
import java.awt.*;
|
|
import java.awt.image.*;
|
|
import java.awt.geom.*;
|
|
import com.sun.image.codec.jpeg.*;
|
|
import java.io.*;
|
|
|
|
|
|
/**
|
|
* Beispiel zum Speichern eines Bildes
|
|
*
|
|
* @author Frank Klawonn
|
|
* Letzte Aenderung 27.05.2005
|
|
*/
|
|
|
|
public class ImageSavingExample extends Frame
|
|
{
|
|
|
|
//Hierauf wird das zu speichernde Bild gezeichnet
|
|
private BufferedImage theImage;
|
|
|
|
/**
|
|
* Konstruktor
|
|
*/
|
|
public ImageSavingExample()
|
|
{
|
|
//Ermoeglicht das Schliessen des Fensters
|
|
addWindowListener(new MyFinishWindow());
|
|
//Initialisiere das BufferedImage
|
|
theImage = new BufferedImage(200,300,BufferedImage.TYPE_INT_RGB);
|
|
//Erzeuge das zugehoerige Graphics2D-Objekt.
|
|
Graphics2D g2dImage = theImage.createGraphics();
|
|
//Das gewuenschte Bild wird gezeichnet.
|
|
clearWindow(g2dImage);
|
|
g2dImage.setPaint(Color.blue);
|
|
g2dImage.draw(new Rectangle2D.Double(10,10,150,250));
|
|
g2dImage.setPaint(Color.red);
|
|
g2dImage.drawString("Ein Test",30,230);
|
|
try
|
|
{
|
|
//Erzeugung eines file output streams.
|
|
FileOutputStream fos = new FileOutputStream("test.jpg");
|
|
//Erzeugung eines JPEGImageEncoder, der den file output stream verwendet.
|
|
JPEGImageEncoder jie = JPEGCodec.createJPEGEncoder(fos);
|
|
//Der JPEGImageEncoder schreibt das Bild auf den file output stream.
|
|
jie.encode(theImage);
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
System.out.println(e);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//Hier wird das Bild noch einmal im Fenster zu Demonstrationszwecken
|
|
//angezeigt. Zum Speichern des Bildes ist dies nicht erforderlich.
|
|
public void paint(Graphics g)
|
|
{
|
|
Graphics2D g2d = (Graphics2D) g;
|
|
g2d.drawImage(theImage,50,50,null);
|
|
}
|
|
|
|
|
|
|
|
public static void clearWindow(Graphics2D g)
|
|
{
|
|
g.setPaint(Color.white);
|
|
g.fill(new Rectangle(0,0,600,600));
|
|
g.setPaint(Color.black);
|
|
}
|
|
|
|
public static void main(String[] argv)
|
|
{
|
|
ImageSavingExample f = new ImageSavingExample();
|
|
f.setTitle("Speichern eines Bildes");
|
|
f.setSize(600,600);
|
|
f.setVisible(true);
|
|
}
|
|
|
|
}
|
|
|