Swing Benötige Hilfe um ein Swing Canvas zu speichern

needacc

Mitglied
Guten Abend.

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
 

needacc

Mitglied
Nachtrag. Ich benutze folgende Routine um das Canvas während des Zeichnens zu aktualisieren:

Java:
class CanvasPane extends JPanel {
        /**
         * refresh method
         * @param g Graphics object
         */
        public void paint(Graphics g) {
            g.drawImage(canvasImage,0,0,null);
        }
    }
 

klauskarambulut

Bekanntes Mitglied
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) {

}

Da passiert ja auch nichts.
Leeres Buffered Image erstellen.
graphic neu zuweisen. (Absolut Sinnbefreit)
Bild speichern.
Fehlermeldung unter den Tisch fallen lassen.

Damit da überhaupt die Chance besteht, dass hier etwas ausser einem leeren Bild gespeichert wird.

Java:
BufferedImage image = new BufferedImage(canvas.getWidth(), canvas.getHeight(), BufferedImage.TYPE_INT_RGB);
graphic = (Graphics2D) image.getGraphics();
// Zeichnen
graphic.setColor(Color.RED);
graphic.drawString("Hallo Welt", 0, 0);
// Zeichnen fertig.
try {
   ImageIO.write(image, "png", new File("d:/canvas.png"));
} catch (Exception e) {
   e.printStacktrace();
}
 
Zuletzt bearbeitet von einem Moderator:

needacc

Mitglied
Nabend Klaus.

Ja dass das soweit erstmal sinnfrei ist, war mir schon bewusst. Dass ich BufferedImage vor die Zeichenbefehle setzen muss, war mir allerdings erstmal nicht bewusst ;)

Er speichert mein Bild. Top, Danke.

Aber, ich sehe jetzt nicht mehr wie gezeichnet wird. Ich vermute nach dem erstellen des Canvas erstelle ich jetzt zusätzlich noch ein zweites Canvas mit BufferedImage. Mein eigentliches Problem ist also, dass ich meine oben gepostete makeCanvas Routine so umbauen muss, dass ich dort direkt das BufferedImage Canvas erstelle (falls ich irre, ich gehe davon aus, dass BufferedImage ein Canvas erstellt, deshalb spreche ich von Canvas).

Kann mir vielleicht noch jemand helfen die make Canvas() Routine so umzubauen, dass ich dort anstatt dem bishereigen Canvas direkt das BufferedImage erstelle?

MFG, needacc
 

needacc

Mitglied
Sorry wegen dem Doppelpost, ich mache es wegen der Übersichtlichkeit.

Ich habe das Erstellen von Frame + Canvas noch nicht wirklich kapiert, trotz Lektüre der Oracle Doku. Ich erstelle in der makeCanvas() Rahmen und Canvas. Zusätzlich habe ich die paint() für den Canvas refresh. Das habe ich mir soweit zusammenkopiert und an meine Bedürfnisse angepasst.

Ich verstehe es aber nicht ausreichend, um hier jetzt das BufferedImage mit unter zu bringen. Da ich nicht aus der JAVA Welt komme möchte ich mich lieber auf den Inhalt als auf die Verwaltung konzentrieren. Ich vermute für einen Java Programmierer sind das absolute Basics, mich kostet es unnötig viel Zeit mich erst tief in die MAterie einzuarbeiten ...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T SWT benötige den richtigen SWT style --> org.eclipse.swt.SWT.* AWT, Swing, JavaFX & SWT 2
2 Swing Was benötige ich? JFrame?InternalFrame? AWT, Swing, JavaFX & SWT 10
N Benötige Swing Layout Nachhilfe AWT, Swing, JavaFX & SWT 4
I Hilfe bei dem Erstellen einer SQL Abfrage aus gewählten JComboBoxen AWT, Swing, JavaFX & SWT 5
JavaBeginner22 Button Hilfe AWT, Swing, JavaFX & SWT 0
ExceptionOfExpectation Textdarstellung auf einem Canvas mit Hilfe von repaint(); AWT, Swing, JavaFX & SWT 6
senol JOptionPane hilfe!!! :(((( AWT, Swing, JavaFX & SWT 32
donnico2 Objekte in der GUI ausgeben mit Hilfe einer DAO AWT, Swing, JavaFX & SWT 1
J Swing Hilfe bei Layout AWT, Swing, JavaFX & SWT 2
Zrebna JavaFX-Projekt mit Bildern funktioniert nicht - um Hilfe wird gebeten AWT, Swing, JavaFX & SWT 14
F BorderLayout Hilfe bei Anzeige AWT, Swing, JavaFX & SWT 2
J Hilfe beim tablevies AWT, Swing, JavaFX & SWT 2
T Swing Hilfe - Selbst Informatik Lehrer konnte mir nicht weiter Helfen AWT, Swing, JavaFX & SWT 2
W Swing Hilfe beim Einbinden von Bildern in einem JFrame AWT, Swing, JavaFX & SWT 8
A Swing TicTacToe-Bitte um Hilfe AWT, Swing, JavaFX & SWT 32
T Bitte um Hilfe AWT, Swing, JavaFX & SWT 2
T Hilfe bei Code AWT, Swing, JavaFX & SWT 2
S Hilfe bei Java Gui Anfänger AWT, Swing, JavaFX & SWT 5
J Warum geht das nicht? if-else usw..... compilieren geht nicht -- HILFE!!! AWT, Swing, JavaFX & SWT 10
M Problem mit Layoutmanagern... Hilfe wäre sehr nett. AWT, Swing, JavaFX & SWT 2
T Hilfe was mus ich tun um das fertige JfxFenster zu sehen AWT, Swing, JavaFX & SWT 2
R Hilfe beim ändern des Hintergrundes eines JFrames AWT, Swing, JavaFX & SWT 9
A hilfe für flowlayout AWT, Swing, JavaFX & SWT 6
X Swing JButton's zum JScrollPane hinzufügen geht nicht. Bitte um Hilfe. AWT, Swing, JavaFX & SWT 9
C Gesucht: Hilfe beim programmieren. AWT, Swing, JavaFX & SWT 1
V Swing Brauche Hilfe mit Label AWT, Swing, JavaFX & SWT 3
C Hilfe beim programmieren mit studiumgebundenes Projekt AWT, Swing, JavaFX & SWT 1
T Swing JTable Zeile mit ausgelesenen Werten mit Hilfe von einem Button hinzufügen AWT, Swing, JavaFX & SWT 1
A JavaFX Hilfe beim Design eines Quiz AWT, Swing, JavaFX & SWT 2
H Swing Hilfe bei GUI AWT, Swing, JavaFX & SWT 4
T HILFE wie lösche ich gezeichnetes per tastendruck AWT, Swing, JavaFX & SWT 1
R Swing JOptionPane Fehlermeldung- bitte um Hilfe! AWT, Swing, JavaFX & SWT 4
Tausendsassa ImageIcon?! Hilfe! AWT, Swing, JavaFX & SWT 10
C Hilfe bei JSpinner und JList AWT, Swing, JavaFX & SWT 1
J GridBagLayout mit Hilfe einer For-Schleife befüllen AWT, Swing, JavaFX & SWT 1
M Hilfe bei Performanceverbesserung AWT, Swing, JavaFX & SWT 34
B Hilfe welches Layout brauch ich AWT, Swing, JavaFX & SWT 4
M SwingWorker Hilfe! AWT, Swing, JavaFX & SWT 10
K Swing Brauche Hilfe AWT, Swing, JavaFX & SWT 6
O AWT Performance und Bug behebung[brauche Hilfe] AWT, Swing, JavaFX & SWT 2
K Swing Konsolen Programm in GUI - Suche Hilfe bei Konsolenausgabe AWT, Swing, JavaFX & SWT 2
K Viele Textfield mit Hilfe eines MousListener leeren - möglich? AWT, Swing, JavaFX & SWT 8
I ausgewählte Zeile mit Hilfe der Tastatur löschen! AWT, Swing, JavaFX & SWT 3
Kenan89 Java FX GUI Hilfe für erste Java FX App AWT, Swing, JavaFX & SWT 8
B Rechteck Mit Hilfe Von Timeline, KeyFrames animieren AWT, Swing, JavaFX & SWT 3
J LayoutManager Hilfe bei Wahl des Layouts AWT, Swing, JavaFX & SWT 9
F Hilfe beim ausschalten von Robot AWT, Swing, JavaFX & SWT 7
N Hilfe bei Memory-Spiel AWT, Swing, JavaFX & SWT 18
L Swing Hilfe bei JTabelModel gesucht AWT, Swing, JavaFX & SWT 4
B Hilfe zu JTable und JTabbedPane AWT, Swing, JavaFX & SWT 18
K Hilfe bei Labels AWT, Swing, JavaFX & SWT 3
S Hilfe beim Lernprozess von java3d AWT, Swing, JavaFX & SWT 20
T JLayeredPanel - Hilfe AWT, Swing, JavaFX & SWT 7
C Swing Hilfe bei umsetzung eines Stundenplans. AWT, Swing, JavaFX & SWT 7
K Swing Hilfe beim JTree! AWT, Swing, JavaFX & SWT 3
N Hilfe bei Panels! AWT, Swing, JavaFX & SWT 11
F Swing Syntaxhighlighting Hilfe AWT, Swing, JavaFX & SWT 5
Jats Bitte um Hilfe bei JComboBox mit Array AWT, Swing, JavaFX & SWT 6
Jats Hilfe bei FocusListener für Taschenrechner AWT, Swing, JavaFX & SWT 4
N Swing nach Fensterrand Action ausführen? HILFE AWT, Swing, JavaFX & SWT 7
R Hilfe bei Bachelorrabeit. Seitenvorschau AWT, Swing, JavaFX & SWT 7
L Mein Kopf dreht sich... Brauche Hilfe beim GUI gestalten AWT, Swing, JavaFX & SWT 10
G Swing Hilfe-Fenster erstellen AWT, Swing, JavaFX & SWT 20
E LayoutManager Hilfe ein GridbagLayout!! AWT, Swing, JavaFX & SWT 7
K GUI-Hilfe für Anfänger AWT, Swing, JavaFX & SWT 15
J Schulprojekt und braucht hilfe AWT, Swing, JavaFX & SWT 54
G Hilfe! Command Pattern an easy ImageViewer? AWT, Swing, JavaFX & SWT 13
radiac Hilfe bei GUI AWT, Swing, JavaFX & SWT 22
N Hilfe bei erstellen eines Bibliotheksprogrammes AWT, Swing, JavaFX & SWT 15
H Swing Jtable wird nicht angezeigt..hilfe!! AWT, Swing, JavaFX & SWT 16
M DRINGEND HILFE TextPane RECHTSBÜNDIG AWT, Swing, JavaFX & SWT 2
B Swing Hilfe zu JTextField AWT, Swing, JavaFX & SWT 2
J Brauche ganz dringend Hilfe!!! AWT, Swing, JavaFX & SWT 5
V Bitte um Hilfe bei nem Taschenrechner AWT, Swing, JavaFX & SWT 8
F NullPointerException - HILFE!! AWT, Swing, JavaFX & SWT 20
G Hilfe!!!Sudoku AWT, Swing, JavaFX & SWT 19
M Swing JButton hilfe AWT, Swing, JavaFX & SWT 3
M brauche Hilfe um Einträge aus Jlist zu löschen AWT, Swing, JavaFX & SWT 4
Spin Hilfe - Erklärungsbedarf für Kreis AWT, Swing, JavaFX & SWT 5
O Bitte um Hilfe bei ComboBox in TableHeader AWT, Swing, JavaFX & SWT 9
M Erstellen eines Hilfe-Fenster bzw"Erste-Schritte" AWT, Swing, JavaFX & SWT 2
G Hilfe beim Erstellen eines eigenen Html-Editors! AWT, Swing, JavaFX & SWT 4
G Hilfe Meine JPanels verschwinden im Müll AWT, Swing, JavaFX & SWT 10
G Hilfe AWT, Swing, JavaFX & SWT 8
N ausrichtung Button - hilfe bitte AWT, Swing, JavaFX & SWT 2
T Hilfe zu Events? AWT, Swing, JavaFX & SWT 6
A Ini Datei Auswerten - HILFE! AWT, Swing, JavaFX & SWT 6
D Hilfe bei GUI-Elementen in Java AWT, Swing, JavaFX & SWT 9
D Grafikeinsteiger sucht/braucht Hilfe. Wäre Nett ! AWT, Swing, JavaFX & SWT 3
K Mein Informatikprojekt läuft aus dem Ruder Hilfe. F1 ^^ AWT, Swing, JavaFX & SWT 5
S Hilfe! Bekomme Daten nicht ausgelesen AWT, Swing, JavaFX & SWT 3
M hilfe! probleme mit meinem programm AWT, Swing, JavaFX & SWT 5
V Hilfe :( bekomme textarea nicht versetzt AWT, Swing, JavaFX & SWT 2
M Hilfe ich komme nicht an ein JTextArea AWT, Swing, JavaFX & SWT 4
J Hilfe CardLayout AWT, Swing, JavaFX & SWT 3
C Hilfe bei JInternalFrame AWT, Swing, JavaFX & SWT 6
G BubbleSort mit Hilfe einer Balkengrafik visualisieren AWT, Swing, JavaFX & SWT 9
G Leider trotz allem kein Icon :( Brauche Hilfe AWT, Swing, JavaFX & SWT 3
S sinuskurve hilfe! AWT, Swing, JavaFX & SWT 2
D JSplittPane - unsichtbarer Rahmen? hilfe ;) AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben