von Graphics in BufferedImage

wotan0

Mitglied
Hallo,

mein Problem ist, eine Grafik die ich auf ein JFrame zeichen, in ein (Buffered-) Image zu bekommen und in dem zusammenhang zu speichern.

Aus einem GUI werden werte ausgelesen die ich aufs JFrame mit

Java:
public void paint(Graphics g){

    super.paint(g);

    ...

}

zeichne.
Mit der Java API und div. Tutorials kam ich leider nicht weiter.

Gruß

Stefan
 
Zuletzt bearbeitet:

Marco13

Top Contributor
Ganz grob
BufferedImage bi = new BufferedImage(w,h,BufferedImage.TYPE_INT_ARGB);
Graphics g = bi.createGraphics();
// in das g reinzeichnen, dann
g.dispose();

Und das Bild dann mit ImageIO speichern. Bei Components kann dieses "Reinzeichnen" ein bißchen frickelig sein, aber so als Ansatz...
 

Michael...

Top Contributor
Üblicherweise überschreibt man nicht die paint() eines JFrames, sondern verbaut darin ein JPanel/JComponent und überschreibt deren paintComponent(Graphics g)

Was hast Du bisher versucht?
Wenn Du ein BufferedImage verwendest kannst Du Dir mit createGraphics() das Graphics Objekt des Bildes holen und damit zeichnen was Du willst. z.B. Deine Graphik, Deinen JFrame bzw. die ContentPane des JFrames...
 

wotan0

Mitglied
Danke nochmal für die Auskunft,

speichern klappt nun alles.

Jetzt möchte ich von dem Graphics Objekt was ich zeichne, auch die Größe für das BufferedImage übernehmen.

Mit
Java:
g2.getClipBounds().width
bekomme ich Werte, die ändern sich aber ständig zur Laufzeit, da ich mehrere male paint() aufrufe. Habt ihr eine Idee wie man die "letzte" Größe am Ende herausfindet und wo ich dann am besten mein speichern/erzeugen aufrufe?

Danke im Voraus
 

Michael...

Top Contributor
Graphics Objekt was ich zeichne, auch die Größe für das BufferedImage übernehmen.
Das Graphics Objekt besitzt keine Information über die Größe des gezeichneten Objekts.
Die Größe musst Du von dem zu zeichenenden Objekt erfragen.
Ein Graphics Objekt ist nur ein Werkzeug zum Zeichnen, quasi der Pinsel. Du benötigst aber die Größe der Leinwand.
 

wotan0

Mitglied
Ok, dann anders formuliert. Ich möchte vorher nicht explizit die größe festlegen sondern erst am ende sagen, die leinwand (in dem Fall das JFrame) soll exakt die randmaße haben, von der gezeichneten fläche. ist das möglich?
 

Michael...

Top Contributor
die leinwand (in dem Fall das JFrame) soll exakt die randmaße haben, von der gezeichneten fläche.
War die ursprüngliche Fragestellung nicht ein JFrame bzw. einen bestimmten Inhalt auf ein BufferedImage zu zeichenen?
Die Größe eines BufferdImages wird bei der Erzeugung definiert. Reicht das nicht aus muss ein größeres erzeugt und das kleiner darauf abgemalt werden.

Worauf zeichnest Du und woher beziehst Du die Information zu dem Inhalt der gezeichnet werden soll?
 

wotan0

Mitglied
Ich rufe o.g. paint Methode auf mit dem Konstruktoraufruf der Superklasse JFrame, nur so bekomm ich mein JFrame mit Zeichnung angezeigt und gleichzeitig ein BufferedImage mit selbigem Inhalt.

Meine Klasse erbt direkt von Jframe worauf ich auch zeichne. Die informationen hole ich mir aus einem Formular.
 

Michael...

Top Contributor
Ich rufe o.g. paint Methode auf mit dem Konstruktoraufruf der Superklasse JFrame, nur so bekomm ich mein JFrame mit Zeichnung angezeigt und gleichzeitig ein BufferedImage mit selbigem Inhalt.

Meine Klasse erbt direkt von Jframe worauf ich auch zeichne. Die informationen hole ich mir aus einem Formular.
Und willst jetzt was erreichen?
Was ist mit dem BufferedImage? Das wird ebenfalls im JFrame angezeigt? Oder soll auf das gleichzeitg der selbe Inhalt gemalt werden?
Was genau steht in Deiner paint...?
 

André Uhres

Top Contributor
Meine Klasse erbt direkt von Jframe worauf ich auch zeichne.

Hallo Stefan,

in Swing zeichnen wir nicht direkt auf das Fenster (JFrame), sondern auf eine JComponent, die wir dem Fenster hinzufügen. Dann brauchen wir nur der JComponent die gewünschte Größe zu geben und davon ein Bild mit identischer Größe zu machen. Siehe dazu auch den ersten Link in meinem obigen Beitrag.

Gruß,
André
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M HILFE JPanel - Graphics Java Basics - Anfänger-Themen 1
H Eingabe tätigen bevor Graphics g Fenster öffnet Java Basics - Anfänger-Themen 5
I Java Klassen "Graphics" und "MouseEvent" kombinieren Java Basics - Anfänger-Themen 7
CptK Interface Bilder mit Graphics g zeichnen Java Basics - Anfänger-Themen 7
J Erste Schritte drawLine Methode der Graphics Klasse Java Basics - Anfänger-Themen 2
J GUI / Graphics Java Basics - Anfänger-Themen 2
H Graphics / repaint Java Basics - Anfänger-Themen 8
K Zwei Fragen zu Graphics/Graphics2D Java Basics - Anfänger-Themen 5
R Cast java.awt.Graphics Java Basics - Anfänger-Themen 7
Azazel (Anfängerhilfe) awt.Graphics Schwierigkeiten Java Basics - Anfänger-Themen 6
I Methoden public void paintComponent (Graphics g) Java Basics - Anfänger-Themen 4
B Erste Schritte Anzeige von Graphics Objekten einzeln aktualisieren Java Basics - Anfänger-Themen 1
S Farbige Lebensleiste mit Graphics? Java Basics - Anfänger-Themen 10
S Ein Graphics Obejct mehrmals mit denselben Eigenschaften zeichnen lassen?!?!? Java Basics - Anfänger-Themen 4
S G Graphics Java Basics - Anfänger-Themen 1
thet1983 g.Graphics löschen? Java Basics - Anfänger-Themen 1
M Probleme mit paint() aus java.awt.Graphics Java Basics - Anfänger-Themen 2
A EAN13 Font auf graphics g erzeugt Monospaces Java Basics - Anfänger-Themen 14
N Graphics to png Java Basics - Anfänger-Themen 10
N Methode draw(Graphics g) aufrufen Java Basics - Anfänger-Themen 6
Dogge Problem mit paint(Graphics g) im Applet Java Basics - Anfänger-Themen 13
J Problem mit paint(Graphics g) Java Basics - Anfänger-Themen 4
J Jtable änderung soll graphics aktualisieren Java Basics - Anfänger-Themen 4
J JAVA Graphics Java Basics - Anfänger-Themen 5
A Graphics Objekt verhält sich merkwürdig Java Basics - Anfänger-Themen 2
G DRUCKEN von z.B. eines JFrame über print(Graphics g) Java Basics - Anfänger-Themen 9
Maxim6394 Probleme mit Graphics Java Basics - Anfänger-Themen 7
M OOP Graphics immer selbstbezihend Java Basics - Anfänger-Themen 12
K Problem mit Parameter von paint(Graphics g) Java Basics - Anfänger-Themen 3
T Transparente Bilder mit Graphics zeichnen Java Basics - Anfänger-Themen 17
H Probleme mit Graphics G Java Basics - Anfänger-Themen 2
M Schiebepuzzle: MouseListener und Graphics? Java Basics - Anfänger-Themen 6
J Graphics g Java Basics - Anfänger-Themen 4
H Probleme mit Graphics Java Basics - Anfänger-Themen 5
B MouseListener & Graphics Java Basics - Anfänger-Themen 10
M Graphics zeichnen Java Basics - Anfänger-Themen 2
F Graphics PDFBox Java Basics - Anfänger-Themen 9
M kurze Frage zu Graphics Java Basics - Anfänger-Themen 5
Luk10 Buch für Swing/Awt/Graphics Java Basics - Anfänger-Themen 4
M Java Graphics etc. Java Basics - Anfänger-Themen 2
M Concurrency und Graphics Java Basics - Anfänger-Themen 9
F Was ist Graphics g wirklich? Java Basics - Anfänger-Themen 5
J Klasse Graphics Nullpointerexception Java Basics - Anfänger-Themen 8
P Frage zu Graphics Java Basics - Anfänger-Themen 2
O graphics methode zeigt mein bild nicht an Java Basics - Anfänger-Themen 7
F Zweite Graphics-Methode wird nicht ausgeführt Java Basics - Anfänger-Themen 4
T rotes herz public void paint(Graphics g) Java Basics - Anfänger-Themen 2
G paintComponent(Graphics g) Java Basics - Anfänger-Themen 2
eQui Oberfläche mit Graphics zeichnen Java Basics - Anfänger-Themen 11
S Dicke bei Graphics Ovject einstellen Java Basics - Anfänger-Themen 2
V KSKB zum Verständnis von Graphics und paintComponent Java Basics - Anfänger-Themen 6
G mit Graphics erzeugte Strings verschwinden sofort wieder Java Basics - Anfänger-Themen 7
T Graphics von java.awt.Frame soll sich inhalt merken Java Basics - Anfänger-Themen 3
G Graphics-Object skalieren Java Basics - Anfänger-Themen 9
G Constructor & Graphics g Java Basics - Anfänger-Themen 5
F Frage zum Graphics Objekt Java Basics - Anfänger-Themen 3
D Instanz von Graphics in run() Java Basics - Anfänger-Themen 8
B Mouseevents und Graphics Java Basics - Anfänger-Themen 11
D Abstrakte Klasse Graphics Java Basics - Anfänger-Themen 3
W Verständisfrage zu Graphics Objekt Java Basics - Anfänger-Themen 3
P umwandeln von graphics nach image Java Basics - Anfänger-Themen 4
A Graphics g, AdjustmentEvent e Java Basics - Anfänger-Themen 5
Dilandau paint(Graphics g) { unbekannt in try{} / catch{} }? Java Basics - Anfänger-Themen 5
S Graphics Java Basics - Anfänger-Themen 11
Mr.Strobel BufferedImage Exportieren Eclipse Java Basics - Anfänger-Themen 14
A BufferedImage zeigt nur schwarz Java Basics - Anfänger-Themen 3
A BufferedImage Pixel Java Basics - Anfänger-Themen 7
pkm Best Practice BufferedImage in JPane darstellen - aber wie? Java Basics - Anfänger-Themen 22
T BufferedImage in Jar Java Basics - Anfänger-Themen 8
C Problem beim laden eines BufferedImage Java Basics - Anfänger-Themen 2
S BufferedImage heller/dunkler machen mit RescaleOp Java Basics - Anfänger-Themen 2
D Jpg in BufferedImage Reader oder Array ablegen? Java Basics - Anfänger-Themen 5
F BufferedImage Speicher Nutzung Java Basics - Anfänger-Themen 2
S BufferedImage Java Basics - Anfänger-Themen 2
Ernesto95 BufferedImage Teilbereich wieder transparent setzen Java Basics - Anfänger-Themen 16
M BufferedImage performant einlesen Java Basics - Anfänger-Themen 5
A BufferedImage in Android einbinden - Bild spiegeln -wie? Java Basics - Anfänger-Themen 4
O BufferedImage drehen, falsch positioniert Java Basics - Anfänger-Themen 5
K BufferedImage, Bilder laden Java Basics - Anfänger-Themen 15
H BufferedImage DPI verändern Java Basics - Anfänger-Themen 5
S jpeg bzw bufferedimage als PDF Speichern Java Basics - Anfänger-Themen 13
H BufferedImage Java Basics - Anfänger-Themen 5
F BufferedImage aus short[][][] Java Basics - Anfänger-Themen 3
Luk10 NPE bei BufferedImage[] Java Basics - Anfänger-Themen 4
S BufferedImage mit farbwerten füllen Java Basics - Anfänger-Themen 11
I Probleme beim Laden eins BufferedImage Java Basics - Anfänger-Themen 8
P BufferedImage als raw speichern Java Basics - Anfänger-Themen 3
C BufferedImage + Popup/Overlay Java Basics - Anfänger-Themen 2
E BufferedImage drucken Java Basics - Anfänger-Themen 3
R BufferedImage in JLabel Java Basics - Anfänger-Themen 2
G Serialisiertes BufferedImage wieder einlesen Java Basics - Anfänger-Themen 13
G Jpanel -> BufferedImage konvertieren Java Basics - Anfänger-Themen 7
G BufferedImage in Applet laden Java Basics - Anfänger-Themen 8
Q BufferedImage aus Bild in jar Java Basics - Anfänger-Themen 2
? BufferedImage löschen Java Basics - Anfänger-Themen 4
F Farben eines ganzen BufferedImage invertieren Java Basics - Anfänger-Themen 2
K Graphics2D und BufferedImage Java Basics - Anfänger-Themen 3
D wie kann ich ein BufferedImage komprimieren? Java Basics - Anfänger-Themen 7
reibi TIFF nach BufferedImage wandeln Java Basics - Anfänger-Themen 72
reibi Farbiges BufferedImage umwandeln zu 2farbig SchwarzWeiss Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben