Hallo,
ich bin auf ein doofes Problem gestoßen, bei dem ich etwas Hilfe gebrauchen könnte.
In meinem kleinem Malprogramm arbeite ich mit BufferedImages, die sehr oft verändert werden.
Dabei nutze ich immer ein BufferedImage, das den aktuellen Malprozess beinhaltet und ein BufferedImage, das quasi den zuletzt davor gültigen Malstand beschreibt.
Da ich immer erst das alte BufferedImage auslese und es nicht einem anderen Image zuweisen kann, da es ja sonst eine Referenz wäre, muss ich es andauernd abspeichern und wieder laden. Das ganze sieht wie folgt aus
Natürlich frisst das super viel Speicher, so dass mein Heap kontinuierlich wächst.
Meine Fragen wären:
Kann ich das BufferedImage aus grCanvas.getDisplayedImage() irgendwie kopieren und in einem anderen BufferedImage abspeichern ohne dass eine Referenz besteht
Oder gibt es eine bessere Möglichkeit, um Files zu schreiben oder auszulesen?
Es wäre super wenn ihr helfen könntet,
danke
ich bin auf ein doofes Problem gestoßen, bei dem ich etwas Hilfe gebrauchen könnte.
In meinem kleinem Malprogramm arbeite ich mit BufferedImages, die sehr oft verändert werden.
Dabei nutze ich immer ein BufferedImage, das den aktuellen Malprozess beinhaltet und ein BufferedImage, das quasi den zuletzt davor gültigen Malstand beschreibt.
Da ich immer erst das alte BufferedImage auslese und es nicht einem anderen Image zuweisen kann, da es ja sonst eine Referenz wäre, muss ich es andauernd abspeichern und wieder laden. Das ganze sieht wie folgt aus
Code:
BufferedImage img;
...
try {
ImageIO.write(grCanvas.getDisplayedImage(), "jpeg",
new File("Icons/uebungIcons/BufferedImage.jpg"));
img = ImageIO.read(new File("Icons/uebungIcons/BufferedImage.jpg"));
}
catch (IOException ee) {
// TODO Auto-generated catch block
ee.printStackTrace();
}
...
Natürlich frisst das super viel Speicher, so dass mein Heap kontinuierlich wächst.
Meine Fragen wären:
Kann ich das BufferedImage aus grCanvas.getDisplayedImage() irgendwie kopieren und in einem anderen BufferedImage abspeichern ohne dass eine Referenz besteht
Oder gibt es eine bessere Möglichkeit, um Files zu schreiben oder auszulesen?
Es wäre super wenn ihr helfen könntet,
danke