| Autor |
Beitrag |
BasicMan33
      
Beiträge: 54
Win 95, Win XP
D7
|
Verfasst: Mi 19.10.05 22:01
Hallo,
Ich wollte ne Bildvorschau basteln und bin zum Entschluss gekommen, das eine Imagekomponente und Picture.LoadFromFile definitiv zu langsam ist.
Wenn ich ein OpenPictureDialog mit Vorschau habe, dann wird das Bild in der Vorschau ja übelst schnell angezeigt. Gibt es da schon ne Komponente, oder muss ich da Tricksen?
Thanks
|
|
Amateur
      
Beiträge: 777
(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
|
Verfasst: Mi 19.10.05 22:40
lad die bilder in bitmaps oder in ne imagelist... daraus kannste schneller laden weil die datein nur noch gezeichnet werden müssen und das laden von der platte wegfällt...
_________________ "Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 481
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Do 20.10.05 07:32
Trickige Alternative: Es Gibt Jpegs, die haben am Anfang einige Zusatzinfos stehen, z.B. Aufnahmezeit, Belichtung, Kameramodell etc. Und manchmal auch ein Thumbnail des Bildes, so dass man für ne Vorschau nur die erstem paar KB lesen muss, nicht die ganze Datei.
_________________ We are, we were and will not be.
|
|
matze
      
Beiträge: 4613
Erhaltene Danke: 24
XP home, prof
Delphi 2009 Prof,
|
Verfasst: Do 20.10.05 08:14
du kannst auch mal die eigenschaft des images incremetaldisplay auf true setzen. dann geht das gefühlmäßig schonmal schneller... 
_________________ In the beginning was the word.
And the word was content-type: text/plain.
|
|
Lossy eX
      
Beiträge: 1048
Erhaltene Danke: 4
|
Verfasst: Do 20.10.05 09:47
Wo wir schon bei jpegs sind. Du kannst auch die Eigeschaften Scale und Performance. Dadurch wird das Bild kleiner geladen und mehr Priorität auf die Geschwindigkeit gelegt. Allerdings ist Scale für kleinere Bilder wohl eher nicht so sinnvoll, da sie dann ja noch kleiner würden.
_________________ Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
|
|
BasicMan33 
      
Beiträge: 54
Win 95, Win XP
D7
|
Verfasst: Do 20.10.05 21:59
Danke für die vielen Tipps,
Muss mich blos noch für den richtigen entscheiden.
Wenn ich die Bitmaps am Anfang alle Lade, dann könnt ich mir vorstellen, dass bei etwa 100 Bilder das schon ein Stück dauert. Von daher muss ich das erstmal Praxisnah testen.
Fakt ist, das ich dann wohl auf eine Methode zurückgreifen werden, die für bmp und jpeg gleichermaßen funktioniert ohne unnötige Abfragen dazuzubasteln. Das mit der Performance und Scale klingt gut.
|
|
Amateur
      
Beiträge: 777
(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
|
Verfasst: Do 20.10.05 22:12
laden ist laden... egal wie du es machst.. entweder am anfang oder zur laufzeit... am anfang wirkt es aber professioneller und ist benutzerfreundlicher... und für jpeg musste tpicture und nicht tbitmap nehmen oder irre ich mich da? korrigiert mich wenns falsch ist... aber 100 bilder würde ich nicht zur laufzeit laden... das wird nervig... dann lieber nen splashscreen und anfangs laden.. und die bilder so klein wie möglich.. oder ne res datei
_________________ "Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700
|
|
Lossy eX
      
Beiträge: 1048
Erhaltene Danke: 4
|
Verfasst: Fr 21.10.05 09:53
Mal was anderes. Wozu brauchst du du das eigentlich genau?
Evtl ist es nicht nötig (üblich) alle Bilder auf einmal zu laden. Oder du musst das alles nur anders verpacken. Also so, dass deine Anwendung Bild für Bild lädt und dennoch reagieren kann. So kann der Benutzer dann mehr oder weniger sehen, dass sie etwas tut und sollte es zu lange dauern, dann kann er es einfach abbrechen oder so. Dazu wäre aber mal wichtig was du vor hast.
_________________ Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 481
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Fr 21.10.05 10:01
Leute. Wenn ich ein Programm habe, was mir eine Bildvorschau liefern soll, und ich in Ordner reingehe, in dem ich 1GB Fotos von meiner Digitalkamera habe, und das Programm mir erstmal den gesamten RAM und die Auslagerungsdatei zuschreibt, und ich die Daten zusätzlich auf einer externen USB-Platte habe, wodurch das Laden entsprechend länger dauert -- was glaubt ihr, mache ich mit dem Programm? -- Richtig. Das kommt weg und in meinen internen Biospeicher kommt eine Notiz, nie wieder ein Programm dieses Programmierers/Firma zu testen.
Besser wäre dann schon sowas: Wenn ein Bild geladen und angezeigt wurde, dann das nächste und vorige Bild in den Speicher laden (am besten in nem extra Thread). Damit es bei Druck auf [Bild Auf], [Bild Ab] "sofort" da ist.
_________________ We are, we were and will not be.
|
|
BasicMan33 
      
Beiträge: 54
Win 95, Win XP
D7
|
Verfasst: Fr 21.10.05 22:05
Na soviel Bilder werden es ja hoffentlich nicht werden.
Das soll im Prinzip in das hier eingebaut werden:
www.delphi-forum.de/...mizer+V02_49762.html
Wer es schonmal getestet hat, der wird merken, das es ziemlich langsam mit der Anzeigen
funkst.
Laden kann ich die Bilder wohl erst, wenn ich auf das entsprechende Archiv klicke.
Weil da erst die Pfade geladen werden für die Dateien.
Das heißt, das ich das erste Bild lade, dann die Tabelle und die Vorschau erzeuge und danach
die restlichen Bilder lade. Wäre dann ja wohl die beste Variante, oder?
|
|