ERLEDIGT
NEIN
NEIN
ANTWORTEN
8
8
ZUGRIFFE
507
507
EMPFEHLEN
-
14.11.11 09:04 #1
- 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);
-
14.11.11 09:29 #2
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ß
FabioBitte 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.
-
14.11.11 09:31 #3
- Registriert seit
- Jul 2008
- Beiträge
- 71
Das ist ja noch viel länger!
Ich brauche für 300 bilder 10 sek!
-
14.11.11 09:32 #4
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.
-
14.11.11 09:36 #5
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ß
FabioBitte 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.
-
14.11.11 09:39 #6
- Registriert seit
- Jul 2008
- Beiträge
- 71
Ist das nicht das selbe wie vorhin nur mit 300 bildern?
-
14.11.11 09:43 #7
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.
-
14.11.11 09:45 #8
- 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)
-
14.11.11 09:57 #9
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)
Wenn du willst, kann ich das gerne auch noch mit größeren Bildern testen.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()); }
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
-
TCP Dup-Acks / sehr langsam
Von Bratkartoffel im Forum NetzwerkeAntworten: 1Letzter Beitrag: 30.12.10, 15:27 -
Rechner sehr langsam
Von Zwackmix im Forum Microsoft WindowsAntworten: 2Letzter Beitrag: 20.09.07, 14:04 -
PHP Image Funktionen sehr langsam?
Von multimolti im Forum PHPAntworten: 5Letzter Beitrag: 10.08.07, 12:26 -
PC sehr langsam
Von joners im Forum HardwareAntworten: 4Letzter Beitrag: 17.09.04, 17:37 -
wmi sehr langsam
Von stormystormy im Forum Sonstige SprachenAntworten: 0Letzter Beitrag: 02.01.04, 15:37





Zitieren
Login





