Veröffentlicht 12. Juli 200619 j 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.
12. Juli 200619 j 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.
12. Juli 200619 j Autor 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.
12. Juli 200619 j 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.
12. Juli 200619 j 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.
13. Juli 200619 j 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.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.