Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

Java - Grafikkontext in Datei speichern

Jürgen124 / 3 Antworten / Flachansicht Nickles

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();
}
}

bei Antwort benachrichtigen
Borlander Jürgen124 „Ja, das ist schon richtig. Ein im Speicher gehaltenes BufferedImage soll dafür...“
Optionen
1. Wo erzeuge ich das BufferedImage
Da kann ich nur auf die API-Referenz verweisen. Für solche Sachen gibt es meist ein Beispiel in der JavaDoc...

2. Wie bring ich paint dazu nicht nur in das Canvas, sondern auch in das BufferedImage zu schreiben.
Ins Bild zeichnen, in der Paint-Methode dann das Bild auf dem Canvas ausgeben.


Gruß
Borlander
bei Antwort benachrichtigen