Grafik in einem Panel als Bild exportieren

Status
Nicht offen für weitere Antworten.

Cespenar

Mitglied
so ich habe mal wieder ein problem :wink:

ich habe ein JPanel in das ich grafische elemente reingezeichnet hab
jetzt würde ich gerne diese infos zusätzlich in form eines Bildes abspeichern können

ich hab mich hier im Forum mal ein bischen schlau gemacht, blick aber noch nicht so ganz durch
deshalb mal erst eine Grundsätzliche frage
- kann ich das JPanel direkt als Bild exportieren oder muss ich die informationen erst alle in einem Seperaten Objekt vom
Typ Image o.ä. reinschreiben

jetzt zur art wie das bild abgespeichert wird
nehmen wir mal an ich will ein Bild erzeugen und dann sachen reinzeichnen

Code:
     BufferedImage MeinerstesBild = new BufferedImage( 100, 100, BufferedImage.TYPE_INT_RGB );
     ImageIO.write(MeinerstesBild, "jpg",new File("Bild.jpg"));

irgendwie geht das so aber nicht, da fehlt denke ich mal noch so einiges
vielleicht kann mir ja jemand weiterhelfen :lol:
 
B

Beni

Gast
Das Panel auf das Bild zu bringen ist ganz einfach:
Code:
BufferedImage image = ...
Component panel = ...

Graphics g = image.createGraphics();
panel.paint( g );
g.dispose();

// So, und schon ist das Panel fotographiert.
 

Cespenar

Mitglied
Danke das war genau das was ich gesucht hab :applaus:

so ich hoffe ich nerve nicht mit meinen Fragen aber da wäre noch etwas... ist auch ganz einfach :lol:
ich hab ein Feld des Typs: double[][]
wie kann ich dessen Abmessungen ermitteln :bahnhof:

ich hab leider nichts dazu gefunden und weiß nicht wonach ich in den Java docs suchen muss um das zu finden
 
B

Beni

Gast
Code:
double[][] d = ...

int width = d.length;  // Das wäre mal die "Breite"
int[] height = new int[ width ];

for( int i = 0; i < width; i++ )
  height[i] = d[i].length;  // Jeder Unterarray kann eine andere Länge haben...
 

Cespenar

Mitglied
danke :wink:

so ein problem hätte ich da aber noch :###

dieses double[][] Feld enthält die informationen über mein gesamtes bild, x,y und z-komponente wenn man so will
da das bei großen bilder ziemlich speicherlastig wird (ein double[5000][5000]er Feld schafft er leider nicht ) bin ich dazu übergegangen Zeilenweise die Werte zu berechnen und dann zu übergeben um sie zeichnen zu lassen
(sozusagen ein Bild was sich langsam von oben nach unten aufbaut)

leider klappt das nicht ganz
es wird vielmehr immer nur die letzte Zeile in das Panel gezeichnet was wohl daran liegt das die repaint() methode nicht sofort ausgeführt wird .... das programm rechnet weiter ... und erst wenn alles abgearbeitet ist wird repaint() wirklich ausgeführt => nur die letzte zeile wird gezeichnet
so denke ich mir das zumindest

...
dann hab ich die funktion paintImmediately entdeckt und dann sehe ich sogar wie sich die linie von oben nach unten bewegt, sprich die alten linien werden gelöscht

wie kann ich das verhindern ?
 
B

Beni

Gast
Ein 5000x5000 Bild ???:L ?

Das Bild einer Component wird manchmal gelöscht. Zeichne dein Bild auf ein Image (oder mehrere, vielleicht immer so 500x500-Stückchenweise), überschreib die Methode "paint" (oder "paintComponent" bei Swing), und zeichne darin dein Bild.

Code:
public class ImagePanel extends JComponent{
  public void paintComponent( Graphics g ){
     g.drawImage( ... );
  }
}
 

Cespenar

Mitglied
leider versteh ich den drawImage befehl nicht so ganz
also ein bild kann ich anlegen, aber wie kann ich dann dann einen drawline Befehl auf das bild anwenden
und was ist ein imageObserver
wäre toll wenn du mir ein bischen beispiel code geben könntest wie man direkt in ein Bild reinzeichnet
und das halt zeile für zeile
d.h. eine Klasse berechnet werte übergibt sie an die Zeichen klasse (die bei mir bisher in ein panel zeichnet) , und zeichnet dann die erste Zeile in das bild
dann wird die nächste zeile berechnet und wieder übergeben und in das bestehende bild gezeichnet ohne dies dabei zu überschreiben ! (genau das problem hab ich ja auch mit dem Panel )



Ein 5000x5000 Bild ???:L ?
das wurde ich in einem vb forum auch mal gefragt, mein erster ansatz war in visual basic weil ich das schon länger mache aber vb lässt nur Bilder bis zur bildschirmgröße zu

achja ich hab mal in einer Vorlesung was über Holographie gehört und will sowas mit dem Computer ausrechnen, deshalb die hohe auflösung
 
B

Beni

Gast
Angenommen du hast ein Image, dann kannst du so zeichnen:
Code:
Image image = ...
Graphcis g = image.getGraphics();

g.setColor( Color.GREEN );
g.drawLine( 20, 20, 50, 60 );

g.dispose();

Und ein Image zeichnen geht so
Code:
public class ImagePanel extends JComponent{
  public void paintComponent( Graphics g ){
    Image image = ...
    g.drawImage( image, 40, 40, this );  
  // image ist ja wohl klar ;-)  
  // 40/40 sind die Koordinaten (oberer linker Ecken)  
  //  this ist das ImageObservable. Jede Component implementiert dieses Interface.
  }
}
 

Cespenar

Mitglied
sorry aber ich blick immer noch nicht durch
also ich hab das bis jetzt so verstanden:
der obere codeteil ist dazu da umd in das bild zu zeichnen
und der untere um das Bild irgendwo darzustellen (this zeigt hier auf das ImagePanel)

wie wendet man den Image image = .... befehl an ?
ich kenn das
Code:
BufferedImage Image =new BufferedImage( AnzPixelX, AnzPixelY, BufferedImage.TYPE_BYTE_GRAY );
oder sowas
Code:
private Image image;

das problem ist nämlich das der Befehl
Code:
Graphics g = image.getGraphics();
bei mir nicht akzeptiert wird

obwohl ich dachte das das bei einem BufferedImage gehen müsste da das ja eine Unterklasse von Image ist

// image ist ja wohl klar ;-)

wohl doch nicht so ganz :cry:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Grafik auf einem JPanel bewegen. Java Basics - Anfänger-Themen 7
M Grafik auf einem JPanel erneut darstellen Java Basics - Anfänger-Themen 3
fragenÜber(fragen); Turtle Grafik mit GUI (JFrame) Java Basics - Anfänger-Themen 3
D Grafik auf ein JPane ausgeben. Java Basics - Anfänger-Themen 6
J Konstruktoren und Grafik Java Basics - Anfänger-Themen 3
J "Tetris" - Problem bei der Grafik Java Basics - Anfänger-Themen 5
R Grafik in CSV einbinden Java Basics - Anfänger-Themen 2
S Suche aktuelles 2D Grafik Tutorial Java Basics - Anfänger-Themen 5
B Java -Turtle Grafik - kennt sich jemand damit aus? Java Basics - Anfänger-Themen 1
S Erste Schritte 2D Grafik Probleme mit KeyListener. Java Basics - Anfänger-Themen 18
D aufbauende Grafik Java Basics - Anfänger-Themen 13
8 Grafik erstellen Java Basics - Anfänger-Themen 6
Z Jump and Run - Grafik,Logik und GUI trennen Java Basics - Anfänger-Themen 4
G Bei Mouseover Grafik ändern, gutes Vorgehen gesucht Java Basics - Anfänger-Themen 0
V jab ich eclipse verrückt gemacht :D ? array Jpanel, Jlabel Grafik Fehler / Frage Java Basics - Anfänger-Themen 5
L Grafik Kollision Detektierung Java Basics - Anfänger-Themen 4
L OOP Grafik in Circle Objekt füllen Java Basics - Anfänger-Themen 3
S Grafik löschen Java Basics - Anfänger-Themen 10
C Grafik einsperren Java Basics - Anfänger-Themen 2
E Quelltext für Grafik verschwindet Java Basics - Anfänger-Themen 9
S Grafik verschwindet Java Basics - Anfänger-Themen 8
O Java Grafik-Programmierung? Java Basics - Anfänger-Themen 16
R 2D Grafik zeichnen Java Basics - Anfänger-Themen 4
B Grafik zeichnen Java Basics - Anfänger-Themen 25
S Teilstücke aus einer Grafik extrahieren Java Basics - Anfänger-Themen 2
Maxim6394 Grafik rotieren Java Basics - Anfänger-Themen 11
S Probleme mit JMenü und Grafik Java Basics - Anfänger-Themen 2
0 Grafik eine bestimmte Strecke laufen lassen Java Basics - Anfänger-Themen 6
R Hilfe bei erster Grafik Java Basics - Anfänger-Themen 2
A Gui Grafik Java Basics - Anfänger-Themen 4
maddin86 Grafik in .jar einbetten Java Basics - Anfänger-Themen 3
M import einer Grafik aus .jar funktioniert nicht Java Basics - Anfänger-Themen 6
M Grafik export in ein Jar File Java Basics - Anfänger-Themen 5
O Grafik in Frame laden Java Basics - Anfänger-Themen 9
H Diverse Dinge: Unstabile Grafik, Druckt Grafik nicht,Tooltipp verschwindet hinter Grafik Java Basics - Anfänger-Themen 3
F JLabel mit Grafik füllen Java Basics - Anfänger-Themen 3
K Grafik vergrößern/verkleinern Java Basics - Anfänger-Themen 3
F Zugriffsproblem - Funktion von Grafik trennen Java Basics - Anfänger-Themen 6
H HtmlUnit - Grafik speichern Java Basics - Anfänger-Themen 2
R Taste gedrückt = Grafik zeichen ?!? Java Basics - Anfänger-Themen 8
D PNG-Grafik erzeugen Java Basics - Anfänger-Themen 8
A Grafik erstellen und in Frame einfügen Java Basics - Anfänger-Themen 17
T Drucken von Listen bestehend aus Grafik und Text (unter swing) Java Basics - Anfänger-Themen 7
A grafik 2d Objekte mit der Maus bewegen Java Basics - Anfänger-Themen 4
A Grafik 2d Objekte farblich ausfüllen Java Basics - Anfänger-Themen 15
C Grafik einbinden Java Basics - Anfänger-Themen 11
F Größe von Grafik-Containern verschieben Java Basics - Anfänger-Themen 2
J Unterschied zwischen 2 Grafik Methoden Java Basics - Anfänger-Themen 2
M Grafik neuzeichnen Java Basics - Anfänger-Themen 8
M Grafik als Resource laden? Java Basics - Anfänger-Themen 2
G erste Schritte in Fenster und Grafik-Programmierung Java Basics - Anfänger-Themen 2
$ Inhalt von JPanel als Grafik? Java Basics - Anfänger-Themen 2
K Grafik beim JFrame oben Links ändern nur wie ? Java Basics - Anfänger-Themen 8
J Grafik Java Basics - Anfänger-Themen 3
K Grafik abspeichern, X11 Fehlermeldung Java Basics - Anfänger-Themen 15
T Zeigerposition auf Grafik messen? Java Basics - Anfänger-Themen 5
M ausm String eine Grafik erstellen Java Basics - Anfänger-Themen 4
F Grafik auf Button passt nicht Java Basics - Anfänger-Themen 1
E Grafik in bestimmtes frame einbinden . Java Basics - Anfänger-Themen 13
F Teilen einer großen Grafik Java Basics - Anfänger-Themen 2
M Grafik erstellen Java Basics - Anfänger-Themen 8
C Clear im Grafik Editor Java Basics - Anfänger-Themen 16
C Grafik flimmert bzw. flackert bei Bewegung Java Basics - Anfänger-Themen 11
N Grafik formatieren Java Basics - Anfänger-Themen 7
E fehlermeldung bei rekursiver grafik Java Basics - Anfänger-Themen 11
M wie kombiniere ich grafik und swing-komponenten Java Basics - Anfänger-Themen 16
N Java Problem bei Grafik und OoP Java Basics - Anfänger-Themen 7
V Grafik ist nur ganz kurz sichtbar Java Basics - Anfänger-Themen 3
H Streichholzziehen - Grafik? Java Basics - Anfänger-Themen 3
S Grafik verschwindet aus JTabbedPane Java Basics - Anfänger-Themen 4
K Mehrere Werte in einem Switch Case parallel überprüfen Java Basics - Anfänger-Themen 23
Zrebna Fragen zu einem Klassendiagramm Java Basics - Anfänger-Themen 8
S HashMap mehrere Keys zu einem Value Java Basics - Anfänger-Themen 3
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
F 2x 16bit Werte zu einem 32bit und dann splitten mit 0xb Java Basics - Anfänger-Themen 1
J JSON mit einem JPanel Java Basics - Anfänger-Themen 3
F Einem GIT repository ein Projekt hinzufügen Java Basics - Anfänger-Themen 1
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
J Schlüsselworte Prüfen, ob ein bestimmtes, ganzes Wort in einem String enthalten ist. Java Basics - Anfänger-Themen 6
P Probleme mit NetBeans: Wie lässt sich jar. Datei an einem MacBook öffnen Java Basics - Anfänger-Themen 21
J Auf einem JLabel Linien Malen Java Basics - Anfänger-Themen 1
I @Entity Klassen, Service Beans etc. aus einem Share Projekt beziehen? Java Basics - Anfänger-Themen 26
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
XWing Randomizer mit einem String Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
N Einzelne Werte aus einem TreeSet auslesen Java Basics - Anfänger-Themen 2
N Welche Objekte kann man zu einem Set hinzufügen Java Basics - Anfänger-Themen 4
Kumora ArrayIndexOutOfBoundsException bei einem Sortierverfahren Java Basics - Anfänger-Themen 2
I Viereck / Rechteck Prüfung innerhalb einem bestimmten Bereich Java Basics - Anfänger-Themen 2
Distanz zwischen zwei Zeichenfolgen in einem String bestimmen Java Basics - Anfänger-Themen 5
Substring in einem String finden Java Basics - Anfänger-Themen 13
J Fehlerbehandlung an einem Beispiel Java Basics - Anfänger-Themen 8
I ResultSet aus meiner SQL-Abfrage in einem JTextfield ausgeben. Java Basics - Anfänger-Themen 1
I Innerhalb einem Bild ein Teil austauschen Java Basics - Anfänger-Themen 26
I Dateigröße von einem InputStream oder byte[] bekommen Java Basics - Anfänger-Themen 2
H Compiler-Fehler Klasse in einem Package wird nicht gefunden bzw. akzeptiert Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben