Wie konvertiert man eine JPanel
in eine File
? Mein Panel hat eine bewegte Image
und ich möchte einzelne Frames bekommen.Wie konvertieren Sie ein JPanel in eine Datei?
0
A
Antwort
4
Sie können einen BufferedImage
des Panels zu verschiedenen Zeitpunkten erstellen und dann das Bild in einer Datei speichern.
Die grundlegende Logik hierfür wäre:
BufferedImage image = new BufferedImage(panel.getWidth(), panel.getHeight(), BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = image.createGraphics();
panel.print(g2d);
g2d.dispose();
ImageIO.write(...);
Schauen Sie sich die Screen Image Klasse für bequeme Methoden, die die obige Funktionalität implementieren.
Natürlich wird dies nicht sehr effizient sein, da Sie für jedes Bild ein völlig neues Bild benötigen.
Verwandte Themen
- 1. JPanel in Bild konvertieren
- 2. JFileChooser eingebettet in ein JPanel
- 3. Repaint ein JPanel aus einem anderen JPanel
- 4. BorderLayout - JPanel in JPanel
- 5. Fügen Sie eine Java-Datei in einem JPanel einer anderen Datei
- 6. Wie XML-Datei in eine Datenbank konvertieren?
- 7. Wie man ein Bild auf JPanel in PDF zeigt
- 8. addMouseListener für ein JPanel
- 9. JPanel Dimensionierung im Inneren Eine andere JPanel
- 10. Wie können Sie verhindern, dass ein JPanel System.exit (0)
- 11. Kann ich eine SWF-Datei in ein Bildformat konvertieren?
- 12. Können Sie ein Video in eine Python-Audiodatei konvertieren, ohne sie in einer Datei zu speichern?
- 13. Konvertieren Sie eine PDF-Datei in Text in C#
- 14. Wie eine Liste in ein Wörterbuch konvertieren
- 15. Wie man ein Objekt in ein JPanel hinzufügen
- 16. Wie können Sie eine Excel-Datei in eine MySQL-Datei konvertieren?
- 17. Konvertieren eines GIF in eine CUR-Datei
- 18. Konvertieren Sie eine 3-Spalten-Datei in das Matrixformat
- 19. Ersetzen Sie das aktuelle Bild in JPanel durch ein anderes
- 20. Konvertieren Sie ein csv.DictReader-Objekt in eine Liste von Wörterbüchern?
- 21. Wie JPanel mit einem anderen JPanel
- 22. Java Swing - Wie man ein JPanel deaktiviert?
- 23. Konvertieren Sie eine CSV-Datei in JSON mit Apache NiFi
- 24. Wie kann ich eine CSV-Datei in eine Liste oder ein Dict oder Array konvertieren?
- 25. Android: - Konvertieren Sie eine aufgenommene Audiodatei in ein Float-Array
- 26. Konvertieren Sie Audiodaten uri Zeichenfolge in Datei
- 27. Konvertieren Sie eine Zeichenfolge in ein Wörterbuch in Python?
- 28. Zeichnen über ein JPanel und Hinzufügen der JPanel zu JFrame
- 29. So konvertieren Sie eine SVG-Datei in eine EMF-Datei in C#
- 30. So konvertieren Sie eine Zeichenfolge in NSData
Sie sollten besser 'print' oder' printAll' anstelle von 'paint' verwenden, da es keine doppelte Pufferung beinhaltet ... und keine Ausnahmen auslöst, wenn die Komponente nicht auf dem Bildschirm dargestellt wird;) – MadProgrammer
@MadProgrammer, keine Verwendung des Doppelpuffers sinnvoll. (Code geändert). Ich hatte noch nie ein Problem mit einer Exception (Plattformunterschiede?), Wenn die Komponente nicht realisiert wird, obwohl es Malprobleme gibt. Grundsätzlich fand ich die Größe der Komponenten (0, 0), also gibt es nichts zu malen. Die ScreenImage-Klasse behandelt die Größen für Sie, indem sie Layout-Code aufruft. – camickr
Ich hatte es durch 'NullPointerException', aber es hat wahrscheinlich damit zu tun, dass es überhaupt keinem Elternteil hinzugefügt wurde, so hatte es Probleme mit dem Einrichten des Doppelpuffers ... oder etwas, ich gerade "print" und "printAll" sind in diesen Fällen zuverlässiger: P – MadProgrammer