Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Bitmap in Stream (https://www.delphipraxis.net/164321-bitmap-stream.html)

dal 8. Nov 2011 09:46

Bitmap in Stream
 
Hallo,

ich arbeite erst seid kurzem mit Delphi und bin schon auf ein erstes Problem gestoßen bei dem ich keine Lösung finde.
Ich möchte mehrere Bilder als Bitmap aufnehmen und diese anschließend zusammenfügen.
Ich speicher die Bilder nach jedem Aufnahevorgang in ein Filestream. Das File wird zwar größer aber das Bild verändert sich nicht.

Hat jemand eine Idee woran das liegt?

Bernhard Geyer 8. Nov 2011 09:54

AW: Bitmap in Stream
 
Evtl. musst du mittels

Delphi-Quellcode:
Stream.Pos := 0
deinen Stream wieder zurücksetzen

DeddyH 8. Nov 2011 10:03

AW: Bitmap in Stream
 
AFAIK besitzen Bitmaps einen Header, der müsste ja dann auch noch am Streamanfang angepasst und bei den Folgebitmaps gelöscht werden.

P.S.: Willkommen in der DP :dp:

Bummi 8. Nov 2011 12:02

AW: Bitmap in Stream
 
ich denke vor Du anfängst Bitmaps binär zusammenzupuzzeln tust Du dir leichter mit den bekannten Zeichenroutinen.

http://de.wikipedia.org/wiki/Windows_Bitmap

SirThornberry 8. Nov 2011 12:16

AW: Bitmap in Stream
 
Wie bereits erwähnt ist es mit Bitmaps wie mit Autos. Wenn man 3 Autos hintereinander stellt hat man auch noch keine Stretchlimousine ;-)

dal 8. Nov 2011 12:23

AW: Bitmap in Stream
 
Ok, es scheint doch etwas komplizierter zu sein als ich gedacht habe, dabei wollte ich garnicht soviel Zeit mit diesem Problem verbringen.
Was ich genau machen ist folgendes: Ich bekomme ein Bild als Bitmap, im nächsten Durchlauf bekomm ich ein neues Bild. Das neue Bild soll unter dem alten angehangen werden damit ein großes Bild entsteht.
Das klapt schon ganz gut nur ist irgendwann der Arbeitsspeicher voll, deshalb wollte ich mit eienm Stream arbeiten. Am liebsten würde ich die Bilder mit JPG ablegen aber wenn ich das richtig gelesen hab kann man keien JPG Bilder an einander hängen.

DeddyH 8. Nov 2011 12:27

AW: Bitmap in Stream
 
Auch ein Stream braucht Arbeitsspeicher, er wird also Dein Problem nicht lösen. Das Endergebnis kannst Du natürlich als JPEG abspeichern, nur zum Anhängen wirst Du wohl temporär Bitmaps benutzen müssen (zumindest fällt mir gerade kein anderer Weg ein).

SirThornberry 8. Nov 2011 12:27

AW: Bitmap in Stream
 
Wenn der Arbeitsspeicher nicht genügt um ein großes Bild im Speicher zu halten, was bringt dir dann ein großes Bild in einer Datei? Höchstwahrscheinlich genügt der Speicher auch nicht um dieses dann anzuzeigen.
Es wäre interessant was genau du vor hast bzw. wofür du dieses große Bild benötigst. Eventuell findet sich dann auch die optimale Lösung.
Anstelle ein Bitmap mit .Width:= und .Height:= zu vergrößen hilft es manchmal schon stattdessen einfach .SetSize zu verwenden.

dal 8. Nov 2011 13:14

AW: Bitmap in Stream
 
Ich hab jetzt .Width:= und .Height:= gegen SetSize ausgetauscht und jetzt klapt es. Die Durchläufe werden zwar immer langsamer aber er fügt die Bilder zusammen. Danke für den Tipp.

himitsu 8. Nov 2011 13:57

AW: Bitmap in Stream
 
Immer langsamer ... ja klar, das Bild wird auch immer größer.

Wobei man das Bild auch einmal etwas mehr vergrößern könnte, dann die bilder nur noch in der jetzt passende Bild einfügt/reinzeichnet, was dann schneller sein sollte.

Du baust ein Haus, dann läßt du ja auch nicht das Baugerüst für jeden einzelnen Ziegelstein erneut auf und abbauen, sondern machst das nur einmal am Anfang.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz