Guten Abend.
Ich erstelle mittels folgender Sub ein Canvas:
Darauf zeichnen funktioniert mit bspw. folgendem Befehl einwandfrei:
Nur scheitere ich derzeit an dem Versuch, das gezeichnete als PNG zu speichern. Ich habe etliche Varianten im Netz ausprobiert, das Bild wird erstellt, aber es bleibt leer. Ich vermute ich scheitere daran BufferedImage korrekt zuzuweisen. Folgender Schnippsel müsste eigentlich für das Speichern zuständig sein:
Nach meiner Vermutung muss in die Routine zur Erstellung des Canvas das BufferedImage mit integriert werden. Alle bisherigen Versuche schlugen fehl. Wäre eventuell jemand so freundlich und könnte mir dabei helfen das zum laufen zu bekommen?
Schön wäre anstatt dem JFrame auch ein Scrollframe, damit ich höhere Fenster Auflösungen fahren kann ... aber das Speichern des BufferedImages hat erstmal Priorität.
MFG, needacc
Ich erstelle mittels folgender Sub ein Canvas:
Java:
public void makeCanvas(int width, int height, int r, int g, int b, int a) {
frame = new JFrame("SPIROfun");
canvas = new CanvasPane();
frame.setContentPane(canvas);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
canvas.setPreferredSize(new Dimension(width, height));
frame.pack();
Dimension size = canvas.getSize();
canvasImage = canvas.createImage(size.width, size.height);
graphic = (Graphics2D) canvasImage.getGraphics();
graphic.setColor(new Color(r, g, b, a));
graphic.fillRect(0, 0, width, height);
frame.setVisible(true);
}
Darauf zeichnen funktioniert mit bspw. folgendem Befehl einwandfrei:
Java:
graphic.drawLine(x[0], y[0], x[1], y[1]);
Nur scheitere ich derzeit an dem Versuch, das gezeichnete als PNG zu speichern. Ich habe etliche Varianten im Netz ausprobiert, das Bild wird erstellt, aber es bleibt leer. Ich vermute ich scheitere daran BufferedImage korrekt zuzuweisen. Folgender Schnippsel müsste eigentlich für das Speichern zuständig sein:
Java:
BufferedImage image = new BufferedImage(canvas.getWidth(), canvas.getHeight(), BufferedImage.TYPE_INT_RGB);
graphic = (Graphics2D) image.getGraphics();
try {
ImageIO.write(image, "png", new File("d:/canvas.png"));
} catch (Exception e) {
}
Nach meiner Vermutung muss in die Routine zur Erstellung des Canvas das BufferedImage mit integriert werden. Alle bisherigen Versuche schlugen fehl. Wäre eventuell jemand so freundlich und könnte mir dabei helfen das zum laufen zu bekommen?
Schön wäre anstatt dem JFrame auch ein Scrollframe, damit ich höhere Fenster Auflösungen fahren kann ... aber das Speichern des BufferedImages hat erstmal Priorität.
MFG, needacc