tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
538
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Marc79 Marc79 ist offline Mitglied Silber
    Registriert seit
    Oct 2010
    Beiträge
    69
    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
     

  2. #2
    Tsunamii Tsunamii ist offline Mitglied Silber
    Registriert seit
    Jul 2009
    Beiträge
    75
    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
    Code java:
    1
    
    JLabel label = new JLabel(new ImageIcon(myBufferedImage));

    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
     

  3. #3
    Marc79 Marc79 ist offline Mitglied Silber
    Registriert seit
    Oct 2010
    Beiträge
    69
    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

  1. Antworten: 1
    Letzter Beitrag: 14.12.09, 21:43
  2. Bild in mehrere kleine Teile umwandeln
    Von XanRaZoR im Forum Photoshop
    Antworten: 2
    Letzter Beitrag: 10.10.07, 17:09
  3. Inhalt zur Laufzeit als Bild ausgeben ?
    Von downtownsquirrel im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 12.01.06, 10:41
  4. Antworten: 0
    Letzter Beitrag: 07.11.04, 17:41
  5. Nur Teile eines Bild rendern
    Von Phantomic im Forum Cinema 4D
    Antworten: 5
    Letzter Beitrag: 23.12.03, 10:48

Stichworte