AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bitmap in Stream

Ein Thema von dal · begonnen am 8. Nov 2011 · letzter Beitrag vom 8. Nov 2011
Antwort Antwort
dal

Registriert seit: 7. Nov 2011
11 Beiträge
 
#1

Bitmap in Stream

  Alt 8. Nov 2011, 10:46
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?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Bitmap in Stream

  Alt 8. Nov 2011, 10:54
Evtl. musst du mittels

Stream.Pos := 0 deinen Stream wieder zurücksetzen
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.622 Beiträge
 
Delphi 12 Athens
 
#3

AW: Bitmap in Stream

  Alt 8. Nov 2011, 11:03
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
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: Bitmap in Stream

  Alt 8. Nov 2011, 13:02
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
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

AW: Bitmap in Stream

  Alt 8. Nov 2011, 13:16
Wie bereits erwähnt ist es mit Bitmaps wie mit Autos. Wenn man 3 Autos hintereinander stellt hat man auch noch keine Stretchlimousine
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
dal

Registriert seit: 7. Nov 2011
11 Beiträge
 
#6

AW: Bitmap in Stream

  Alt 8. Nov 2011, 13:23
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.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.622 Beiträge
 
Delphi 12 Athens
 
#7

AW: Bitmap in Stream

  Alt 8. Nov 2011, 13:27
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).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

AW: Bitmap in Stream

  Alt 8. Nov 2011, 13:27
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
dal

Registriert seit: 7. Nov 2011
11 Beiträge
 
#9

AW: Bitmap in Stream

  Alt 8. Nov 2011, 14:14
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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Bitmap in Stream

  Alt 8. Nov 2011, 14:57
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:14 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