Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi jpegs in stream speichern. (https://www.delphipraxis.net/118095-jpegs-stream-speichern.html)

DeddyH 15. Aug 2008 12:04

Re: jpegs in stream speichern.
 
[OT] Tja, 2 Doofe, ein Gedanke :lol: [/OT]

Arnulf 16. Aug 2008 09:25

Re: jpegs in stream speichern.
 
Hallo
Danke für die Antworten.
Mit 2 Streams hab ich es eh gemacht und es funktioniert auch.
Allerdings wollte ich Laufzeit optimieren.

Jpeg erstellen
in memory stream
size lesen,
in filestream mit entpsrechendem offset cardinal.

so funktionierts auch.
beim einlesen dann wieder in einen memory stream mit dem offset und in ein jpeg laden..

so hab ichs ja eh vom anfang an gehabt.
Nur besonders optimal ist das leider nicht - immer dieses umkopieren usw....

da ich live videos aufnehmen will, wollte ich einfach so viel wie möglich einsparen.
aber das scheint mit den jpeg objekten in delphi nicht möglich zu sein.

schade
lg
Arnulf
Edit:
Ich hab mir das beispiel von Die Muhkuh angeschaut.
Ja eine nette idee das in eine objekt liste zu stellen - habs jetzt nicht probiert, aber das könnte schon gehen.
Das einzige problem ist, dass es im speicher gehalten wird - da hätte ich es gleich in einem memory stream belassen können und mit poisition die bytes auslesen.
Das Problem das ich hab, ist dass ich damit ein video darstelle und der Hauptspeicher beim aufnehmen nicht ausreichen könnte bzw. ich auch nicht so belasten will.
Also gleich auf die Festplatte soll es ... und dafür ist das auch keine lösung.
( leider hat keine andere methode funktioniert videos live aufzunehmen als das selbst in einen jpeg stream zu speichern )
lg
Arnulf

marabu 16. Aug 2008 13:29

Re: jpegs in stream speichern.
 
Hallo Arnulf,

ich weiß nicht, ob das für deinen Anwendungsfall eine Option ist, aber es gibt da noch zwei Ansätze:
  • PATCHING: Du merkst dir die Stream-Position in oldPosition, setzt Stream.Position um SizeOf(Cardinal) herauf, schreibst das JPEG-Image in den Stream, merkst dir newPosition, positionierst zurück auf oldPosition, berechnest jpegSize = newPosition - oldPosition - SizeOf(Cardinal), schreibst jpegSize in den Stream und setzt Position wieder vor für das nächste Bild.
  • INDEXING: Du schreibst die Bilder fortlaufend und schreibst die Größen der Bilder in einen zweiten Stream
Freundliche Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:00 Uhr.
Seite 2 von 2     12   

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