Hallo, wie kann ich einen Grafikkontext in eine Datei speichern. Der folgenden Code lädt eine Grafik und speichert sie wieder. Zwischen durch wird ein Text im Grafikkontext in die Grafik eingefpügt. Wie kann ich diesen Grafikkontext speichern? Also das veränderte Bild?
import java.awt.*;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.awt.image.RenderedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
public class ImgShowComponent extends Canvas
{
private BufferedImage img = null;
private String sDID = "";
private BufferedImage outImg;
ImgShowComponent( String sFile , String sID)
{
sDID = sID;
try{
img = ImageIO.read(new File(sFile));
} catch (IOException e) {
e.printStackTrace();
}
try{
ImageIO.write(img, "jpeg", new File("Stempel"+sDID+".jpg"));
} catch (IOException e) {
e.printStackTrace();
}
}
public void paint( Graphics g)
{
// Wie speichert man die veränderte Grafik?
Font myFont = new Font("Arial",Font.PLAIN,25);
g.setFont(myFont);
g.drawImage( img, 0, 0, this );
g.drawString("Dokument"+sDID,30,30);
g.dispose();
}
public Dimension getPreferredSize()
{
return new Dimension( img.getWidth( this ), img.getHeight( this ) );
}
public Dimension getMinimumSize()
{
return getPreferredSize();
}
}
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
Du zeichnest scheinbar nur auf die Zeichenfläche des Canvas, und das jedesmal wenn die Zeichenfläche aufgefrischt wird. Wenn Du das Ergebnis als Datei speichern willst müsstest Du wohl erstmal ein Bild-Objekt erstellen (keine Ahnung wie die Klasse heißt, ich arbeite normalerweise nie mit AWT und Swing. Wird sicher was in der Richtung Image sein), und dann auf dessen Grafikkontext zeichnen. Anschließend kannst Du das Bitmap dann in einer Datei speichern...
Gruß
Borlander