AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Mehrere Bilder in einer Datei Speichern
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrere Bilder in einer Datei Speichern

Ein Thema von Christian.Ossi · begonnen am 11. Jul 2006 · letzter Beitrag vom 8. Dez 2011
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.549 Beiträge
 
Delphi 12 Athens
 
#14

Re: Mehrere Bilder in einer Datei Speichern

  Alt 12. Jul 2006, 16:50
schau mal in die OH ... stichwort seek

im Prinzip gibt es da 2 Möglichkeiten.

entweder alle bilder hintereinander und vor jedes Bild dessen Größe
Größe1, Bild1,
Größe2, Bild2,
Größe3, Bild3

oder erst ein "Array" mit den ganzen Positionen und Größen und dahinter die Bilder.
Position1, Größe1,
Position2, Größe2,
Position3, Größe3,
EndMarker,
Bild1,
Bild2,
Bild3

Anzahl,
Position1, Größe1,
Position2, Größe2,
Position3, Größe3,
Bild1,
Bild2,
Bild3

Letzere wären wohl besser, wenn man ein bestimmtes Bild will
und Ersteres macht sich besser, wenn man alle Bilder der Reihe nach auslesen will und nich erst die gesammte "Tabelle" zwischenspeichern will

Größe = Größe in Byte, damit man weiß wieviel man rausladen muß, wenn man das Bild will
Position = Position in der Datei, also an welcher Stelle das Bild beginnt.

Möglich wären och noch sowas
Anzahl,
Position1,
Position2,
Position3,
Größe1, Bild1,
Größe2, Bild2,
Größe3, Bild3

Position1,
Position2,
Position3,
EndMarker,
Größe1, Bild1,
Größe2, Bild2,
Größe3, Bild3


Bei den Varianten mit einr Tabelle am Anfang kann man halt ganz einfach mit
Seek(DateiHandle, Index * GrößeDerEinträge);
Read(DateiHandle, VariableFürEinenEintrag); // PS: PseudoCode, also nicht direkt so verwenden
die Werte für ein bestimmtes Bild besorgen.

Und dann direkt zu dem gewünschten Bild springen und dieses auslesen
Seek(DateiHandle, VariableFürEinenEintrag.Position);
Read(DateiHandle, Bild, VariableFürEinenEintrag.Größe);

Oder halt (wenn die Größe vorm Bild ist);
Seek(DateiHandle, VariableFürEinenEintrag.Position);
Read(DateiHandle, Größe);
Read(DateiHandle, Bild, Größe);


Wenn du ohne Tabelle arbeitest, dann müstest du dich ja jedesmal vom ersten Bild aus, über jedes einzelne Bild hinweg, bis zum entsprechenden Bild durchhangeln.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz