ERLEDIGT
JA
JA
ANTWORTEN
2
2
ZUGRIFFE
538
538
EMPFEHLEN
-
Hallo Gemeinde,
ich habe eine Frage an Euch, mit der Bitte um Ideen oder Tipps.
Ich komme aus der C/C++, C#, usw. Ecke.
Mit Java habe ich bisher einige kleinere Projekte entwickelt.
Aktuell habe ich folgendes Problem.
Von der HD wird ein Bild geladen. Es ist, sagen wir mal 100 x 100 Pixel groß.
Zur Laufzeit möchte ich aber dieses ganze Bild in 4 Teile splitten und die vier Bildstücke auch als Objekte haben.
Ich habe hier gelernt, dass ich ein Bild einem Label zuweisen kann.
Wie aber kann ich eins in 4 Labels teilen?
Die Variante von vorneherein das Bild zu splitten und dann vier Einzelbilder in Labels zu setzen ist machbar, aber keine gute Lösung.
Ich verwende Netbeans in der Version 6.9.
Bin euch für jeden Tipp, jede Idee dankbar
Gruß Marc
-
Hi also um ein Bild in 4 Teile zu teilen und diese dann auf Labels anzuzeigen brauchst du lediglich 3 Dinge:
1. Bild als BufferedImage per ImageIO einlesen (geht über URL/Datei/Stream)
http://download.oracle.com/javase/1....ava.io.File%29
2. 4 kleine BufferedImage erstellen die nur einen Ausschnitt des großen haben
http://download.oracle.com/javase/1....0int,%20int%29
3. Aus den BufferedImage ein ImageIcon erstellen, dass man dann auf einem Label benutzen kann
Ich hoffe das hilft dir weiter
---edit---
Da ich grad ein bisschen Luft hatte, habe ich mal kurz eine Beispielfunktion geschrieben die ein BufferedImage in beliebig viele Teile aufteilt und auf ein JPanel zeichnet.
Für den Lerneffekt aber bitte erst anschauen wenn man mit den oberen Tipps wirklich nicht weiterkommt:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
public void splitImage(BufferedImage image, int rows, int columns, JPanel panel) { panel.setLayout(new GridLayout(rows, columns)); int height = image.getHeight() / rows; int width = image.getWidth() / columns; for (int r = 0; r < rows; r++) { for (int c = 0; c < columns; c++) { panel.add(new JLabel(new ImageIcon(image.getSubimage(c * width, r * height, width, height)))); } } }
Geändert von Tsunamii (28.10.10 um 09:13 Uhr) Grund: Beispiel hinzu
-
Hi Tsunamii,
vielen Dank für den Tipp.
Habe es gleich umgesetzt. Die Idee mit dem BufferedImage ist klasse.
Dein Edit-Bsp. habe ich erst jetzt gesehen. Ich hatte es so ähnlich gemacht, aber dein Bsp. sieht wesentlich besser aus u hat weniger Zeilen
Vielen Dank und Gruß
Marc
Ähnliche Themen
-
Textfelder (+ Bild) einfügen und verschieben zur Laufzeit.
Von Slevin83 im Forum JavaAntworten: 1Letzter Beitrag: 14.12.09, 21:43 -
Bild in mehrere kleine Teile umwandeln
Von XanRaZoR im Forum PhotoshopAntworten: 2Letzter Beitrag: 10.10.07, 17:09 -
Inhalt zur Laufzeit als Bild ausgeben ?
Von downtownsquirrel im Forum Flash PlattformAntworten: 2Letzter Beitrag: 12.01.06, 10:41 -
Bild per Freihandschnitt in Teile zerlegen ?!
Von paddy3k im Forum C/C++Antworten: 0Letzter Beitrag: 07.11.04, 17:41 -
Nur Teile eines Bild rendern
Von Phantomic im Forum Cinema 4DAntworten: 5Letzter Beitrag: 23.12.03, 10:48





Zitieren
Login





