FinalFantasy Geschrieben 12. Juli 2006 Geschrieben 12. Juli 2006 Hi, ich habe hier ein Programm, dass einen Ordner nach Bildern durchsucht und diese alle als Thumbnails in einer Liste darstellt. Das Auslesen und Resizen der Bilder dauert einige Zeit, vor allem, wenn in dem Ordner wirklich viele und hochauflösende Bilder sind. Um das ganze etwas zu beschleunigen, habe ich mir gedacht, man könnte ja beim erstenmal eine Thumbnaildatei anlegen, in der die fertig verkleinerten Bilder gespeichert werden. Wenn der Ordner dass nächstemal ausgewählt wird, wird zuerst überprüft, ob es in dem Ordner schon eine Thumbnaildatei gibt und wenn ja, wird nur diese geladen. Das dürfte um einiges schneller gehen. Paint Shop Pro macht das auch so (zumindest die alten Versionen). Allerdings habe ich keine Ahnung, wie ich die ganzen Thumbnails in EINER Datei speichern soll, so dass ich sie auch wieder auslesen kann... Kann mir jemand einen Vorschlag machen, wie man das lösen könnte? Ich programmiere in QT 4.1.4, sollte aber keine große Rolle spielen, da es hier eigentlich ums Prinzip geht. Zitieren
Bubble Geschrieben 12. Juli 2006 Geschrieben 12. Juli 2006 Allerdings habe ich keine Ahnung, wie ich die ganzen Thumbnails in EINER Datei speichern soll, Wie wäre es mit alle hintereinander und unter Angabe des Bildnamens, damit Du sie auch zuordnen kannst? Sobald Verzeichnisinhalt und Vorschaudateiinhalt nicht mehr übereinstimmen, musst Du die Datei neu erzeugen. Das ganze kannst Du natürlich noch verfeinern, so dass Du z.B. auch Vorschaubilder aus der Datei nachträglich löschen kannst, usw. PS: Einige Dateiformate integrieren bereits eine eigenes Vorschaubild, dieses könntest Du direkt verwenden. Zitieren
FinalFantasy Geschrieben 12. Juli 2006 Autor Geschrieben 12. Juli 2006 Wie wäre es mit alle hintereinander und unter Angabe des Bildnamens, damit Du sie auch zuordnen kannst? Und wie erkenne ich dann in der Datei, wann ein Bild aufhört und das nächste anfängt? Wie soll ich das dann wieder auslesen? PS: Einige Dateiformate integrieren bereits eine eigenes Vorschaubild, dieses könntest Du direkt verwenden. Bei den Bildern handelt es sich um alle möglichen Typen. Ich darf nicht einfach die Dateiformate konvertieren, bzw. ich darf die Originalbilder überhaupt nicht verändern. Dieser Vorschlag fällt also falch. Zitieren
Klotzkopp Geschrieben 12. Juli 2006 Geschrieben 12. Juli 2006 Und wie erkenne ich dann in der Datei, wann ein Bild aufhört und das nächste anfängt? Üblicherweise, indem du die Länge der Bildinformationen mit abspeicherst. Zitieren
Bubble Geschrieben 12. Juli 2006 Geschrieben 12. Juli 2006 Und wie erkenne ich dann in der Datei, wann ein Bild aufhört und das nächste anfängt? Wie soll ich das dann wieder auslesen? Indem Du die Größe Deiner Vorschaudaten kennst (falls konstant) oder einfach mit abspeicherst... Bei den Bildern handelt es sich um alle möglichen Typen. Ich darf nicht einfach die Dateiformate konvertieren, bzw. ich darf die Originalbilder überhaupt nicht verändern. Dieser Vorschlag fällt also falch. Ich habe nie gesagt, dass Du Originaldateien verändern sollst. Ich habe gesagt, Du kannst die in einigen Dateiformaten vorgesehenen Vorschaubilder, falls vorhanden, benutzen, ohne in jedem Fall eigene Vorschaubilder erstellen zu müssen. Zitieren
systemchaos Geschrieben 13. Juli 2006 Geschrieben 13. Juli 2006 Verwende doch eine Struktur. Leg die Größen fest, nicht zu großzügig. und schreib dann eine Binärdatei, an die du immer dranhängst wenn nicht schon vorhanden. hast dann: - bildgröße in byte - dateiname, n char mit 100 elementen zB - vielleicht noch ne checksumme? - und dann die bilddaten, bytearray schon lang kein c++ mehr gemacht *g ... aber das alles dürfte funktionieren. danach gehst du nur noch mit einer schleife durch. Schau einfach mal im internet wie man strukturen in eine Datei schreibt unter c++ ... das wird schon viel erklären. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.