Wo sind die Bilddateien?



  • Warum sieht man in den Verzeichnissen von Programmen (oder auch Spielen) keine einzige Bilddatei? Meistens gibt es nur eine .dat-Datei. Sind die Bilddateien nun darin? Und wie bekomme ich das genauso hin?

    Freue mich schon auf Antworten! 😉



  • Benutzer123 schrieb:

    Meistens gibt es nur eine .dat-Datei. Sind die Bilddateien nun darin?

    Das kann gut sein. Das Vorgehen hat verschiedene Vorteile: Man kann viele kleine Daten bereits im Voraus so anordnen, wie man sie haben möchte, sodass man sie hinterher in einem Rutsch in den Ram lesen kann. Zudem sind diese Dateien oft noch komprimiert.

    Benutzer123 schrieb:

    Und wie bekomme ich das genauso hin?

    Du benennst deine .png Bilder in .dat um? 😃



  • cooky451 schrieb:

    Du benennst deine .png Bilder in .dat um? 😃

    Dann hab ich nur das Problem, dass ich statt 8 .jpg-Dateien 8 .dat-Dateien hab. 😃 Ich hätte gerne die 8 .jpg-Dateien in einer einzigen .dat Datei (bzw die 8 .dat-Dateien in einer .dat-Datei 😃 ) Ist das irgendwie möglich?



  • Benutzer123 schrieb:

    Ist das irgendwie möglich?

    Ja, du könntest dir ein eigenes Programm schreiben, das die Dateien binär hintereinanderkopiert. Oder du nimmst fertige Windows-Tools dafür. (copy /?, copy /b, die CMD kennst du?)

    Wobei der Vorteil bei so etwas Einfachem vermutlich begrenzt ist. Wie lädst du die Dateien eigentlich? Für fertige Dateiloader musst du die Daten eventuell wieder so herrichten, dass die da was mit anfangen können. Bei einem selbstgeschriebenen Loader sollte das natürlich kein Problem sein.



  • Viele Engines benutzen ihre eigenen Formate aus performance Gründen.Deine bilder aus einer .dat datei könnte sich ohne den Ersteller schwierig gestalten.



  • Die Dateien alle in eine Datei schreiben funktioniert schonmal wunderbar (hätte nicht gedacht, dass das so einfach mit cmd geht 😃 ). Wie kann ich jetzt die einzelnen gespeicherten Bilder über diese Datei in einem Programm verwenden? Hat jedes in einer komprimierten Datei gespeicherte Element einen Index oder Ähnliches, über das es aufgerufen werden kann?



  • Wo die einzelnen Dateien anfangen, mußt du schon selber wissen (im optimalen Fall steht am Anfang jeder Datei deren Größe, aber das hängt davon ab, was für ein Format du verwendest).



  • Benutzer123 schrieb:

    Hat jedes in einer komprimierten Datei gespeicherte Element einen Index oder Ähnliches, über das es aufgerufen werden kann?

    Die Dateien sind jetzt einfach binär aneinander kopiert. Auf eine Datei folgt einfach die nächste. Komprimiert wurde da noch nichts. Wenn du "mehr" willst, musst du dir wohl ein kleines Programm schreiben, das dir das macht. (Sollte ja unproblematisch sein, wenn du schon Bilder laden kannst etc.)

    Denk dir halt was hübsches aus, z.B. könnte man in die ersten vier Byte der Datei die Größe der ersten "inneren" Datein schreiben, danach die Größe der zweiten "inneren" Datei usw.
    Da muss man halt aufpassen, wenn das Plattformunabhängig sein soll. (Stichworte sind Big/Small-Endian.)



  • Hm. Irgendwie kriege ich das nicht so ganz hin. Wenn ich die Datei in mein Programm lade, wird das erste in die Datei kopierte Element angezeigt, aber die Datei verbraucht so viel Speicher, wie alle in die Datei kopierten Elemente zusammen, also kann bei Kopieren der Binärcodes in die Datei nichts schief gegangen sein. 🙄



  • Klar, wenn du die komplette kombinierte Datei lädst, hast du alle Bilder am Stück liegen. Ein Anzeigeprogramm kennt normalerweise das Bildformat und kann aus den Datei-Headern ablesen, wie groß das erste Bild in deinem Archiv ist - und stellt diese dann dar.


Anmelden zum Antworten