tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
507
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Spaceman85 Spaceman85 ist offline Mitglied Silber
    Registriert seit
    Jul 2008
    Beiträge
    71
    Mein Problem ist , dass folgender Code zum laden und Anzeigen der Bilder sehr lange bei der Ausführung dauert.
    ca 300 Bilder in der DB bei einer größe von 20-100kb pro Bild.
    Das laden dauert knapp 10 sek.
    Kann man das irgendwie beschelunigen?

    Gruß
    Spaceman


    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    File file = new File("img_fm/"+model.getFilmData().elementAt(i).getName()+".jpg");
                ImageIcon icon;
                if(file.exists())
                {
                     icon = new ImageIcon("img_fm/"+model.getFilmData().elementAt(i).getName()+".jpg");
                }
                else
                {
                    icon = new ImageIcon("sources/no_pic.gif");
                }
                
                icon.setImage(icon.getImage().getScaledInstance(100, 150, 0));
                btns.elementAt(i).setIcon(icon);
     

  2. #2
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Hi,
    ich habe es mal mit der ImageIO-Klasse versucht. Dabei habe ich für ein Bild zum laden 1,484sec gebraucht. Ich hoffe das reicht.
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    public class FastImageLoader
    {
        public static Image loadImage(String filename) throws IOException {
            final File input = new File(filename);
            if(!input.exists()) {
                throw new FileNotFoundException("The Imagefile '"+filename+"' does not exists");
            }
            return ImageIO.read(input);
        }
    }

    Gruß

    Fabio
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

  3. #3
    Spaceman85 Spaceman85 ist offline Mitglied Silber
    Registriert seit
    Jul 2008
    Beiträge
    71
    Das ist ja noch viel länger!
    Ich brauche für 300 bilder 10 sek!
     

  4. #4
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Achso, tut mir leid, dann habe ich dich falsch verstanden.
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

  5. #5
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Ok, neuer Versuch.
    300 Bilder in 3.515sec

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    
    public class FastImageLoader
    {
        /**
         * @param filename
         * @return the loaded Image
         * @throws IOException
         */
        public static Image loadImage(String filename) throws IOException {
            return loadImage(new File(filename));
        }
        
        /**
         * @param file
         * @return the loaded Image
         * @throws IOException
         */
        public static Image loadImage(File file) throws IOException {
            if(!file.exists()) {
                throw new FileNotFoundException("The Imagefile '"+file.getPath()+"' does not exists");
            }
            return ImageIO.read(file);
        }
        
        public static void main(String[] args) {
            File dir = new File("./images/transformer_title_01-06-2011");
            File[] listFiles = dir.listFiles();
            
            
            StopWatch sw = new StopWatch();
            sw.start();
            for(int i = 0; i < listFiles.length; i++) {
                if(i % 10 == 0) {
                    System.out.println(i + " Images loaded...");
                }
                try {
                    loadImage(listFiles[i]);
                } catch(IOException e) {
                    e.printStackTrace();
                }
            }
            sw.stop();
            System.out.println("Images loaded in Time = " + (sw.getTime() / 1000.0));
        }
    }

    Ausgabe
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    
    0 Images loaded...
    10 Images loaded...
    20 Images loaded...
    30 Images loaded...
    40 Images loaded...
    50 Images loaded...
    60 Images loaded...
    70 Images loaded...
    80 Images loaded...
    90 Images loaded...
    100 Images loaded...
    110 Images loaded...
    120 Images loaded...
    130 Images loaded...
    140 Images loaded...
    150 Images loaded...
    160 Images loaded...
    170 Images loaded...
    180 Images loaded...
    190 Images loaded...
    200 Images loaded...
    210 Images loaded...
    220 Images loaded...
    230 Images loaded...
    240 Images loaded...
    250 Images loaded...
    260 Images loaded...
    270 Images loaded...
    280 Images loaded...
    290 Images loaded...
    300 Images loaded...
    Images loaded in Time = 3.515

    ps.: Die Bilder sind im Durchschnitt ca. 40kb groß

    Gruß

    Fabio
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

  6. #6
    Spaceman85 Spaceman85 ist offline Mitglied Silber
    Registriert seit
    Jul 2008
    Beiträge
    71
    Ist das nicht das selbe wie vorhin nur mit 300 bildern?
     

  7. #7
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Ja schon, aber es funktioniert. Warum es bei dem 1 Bild so lange gedauert hat weiß ich nicht. Aber du kannst den Code doch mal ausprobieren und die Zeit stoppen, wie lange es dauert bis deine Images alle geladen sind.
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

  8. #8
    Spaceman85 Spaceman85 ist offline Mitglied Silber
    Registriert seit
    Jul 2008
    Beiträge
    71
    Habe schon und es ist leider kein Unterschied fest zu stellen!
    Vieleicht ist mein Rechner langsamer als deiner!?
    Wie gross ist dein Bild?
    Geändert von Spaceman85 (14.11.11 um 09:49 Uhr)
     

  9. #9
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Ok, ich habe dir hier mal meine Testdaten aufgelistet:

    Test1 (ImageIO):
    Zeit: 2.844s
    Größe: 23955b (Durchschnittswert)

    Zeit = 27.469s
    Größe = 104396b (Durchschnittswert)

    Code java:
    1
    2
    3
    4
    5
    6
    
        public static Image loadImage(File file) throws IOException {
            if(!file.exists()) {
                throw new FileNotFoundException("The Imagefile '"+file.getPath()+"' does not exists");
            }
            return ImageIO.read(file);
        }

    Test2 (Toolkit):
    Zeit: 0.563
    Größe: 23955b (Durchschnittswert)

    Code java:
    1
    2
    3
    4
    5
    6
    
        public static Image loadFastImage(File file) throws IOException {
            if(!file.exists()) {
                throw new FileNotFoundException("The Imagefile '"+file.getPath()+"' does not exists");
            }
            return Toolkit.getDefaultToolkit().createImage(file.getPath());
        }
    Wenn du willst, kann ich das gerne auch noch mit größeren Bildern testen.
    Geändert von Fabio Hellmann (14.11.11 um 10:13 Uhr) Grund: Tests hinzugefügt
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

Ähnliche Themen

  1. TCP Dup-Acks / sehr langsam
    Von Bratkartoffel im Forum Netzwerke
    Antworten: 1
    Letzter Beitrag: 30.12.10, 15:27
  2. Rechner sehr langsam
    Von Zwackmix im Forum Microsoft Windows
    Antworten: 2
    Letzter Beitrag: 20.09.07, 14:04
  3. PHP Image Funktionen sehr langsam?
    Von multimolti im Forum PHP
    Antworten: 5
    Letzter Beitrag: 10.08.07, 12:26
  4. PC sehr langsam
    Von joners im Forum Hardware
    Antworten: 4
    Letzter Beitrag: 17.09.04, 17:37
  5. wmi sehr langsam
    Von stormystormy im Forum Sonstige Sprachen
    Antworten: 0
    Letzter Beitrag: 02.01.04, 15:37