![]() |
Bitmap aus Stream lesen
Hi Delphianer
Ich versende über die sockets ein bmp Bild. Wenn ich die Daten empfange und in eine Datei schreibe und als .bmp abspeichere kann ich die Bilddatei anschauen. Aber sobals ich den Stream in eine Timage lade wird nichts angezeigt.
Delphi-Quellcode:
Was mach ich da falsch das ich mit Image1.Picture.Bitmap.LoadFromStream(Stream); nichts angezeigt bekomme?
stream := tmemorystream.Create;
stream.WriteBuffer(pointer(data)^,length(data)); stream.Position := 0; assignfile(f, 'C:\00\testbild.bmp'); rewrite(f); writeln(f, data); closefile(f); // Image1.Picture.LoadFromFile('c:\00\testbild.bmp'); Image1.Picture.Bitmap.LoadFromStream(Stream); end; Grüsse Zodi |
AW: Bitmap aus Stream lesen
Vielleicht fehlt noch ein Image1.Repaint?
edit also nach dieser Zeile Zitat:
|
AW: Bitmap aus Stream lesen
Du musst
Delphi-Quellcode:
vor dem
Position
Delphi-Quellcode:
erst wieder auf 0 setzen.
LoadFromStream
|
AW: Bitmap aus Stream lesen
Zitat:
|
AW: Bitmap aus Stream lesen
Zitat:
Probier mal
Delphi-Quellcode:
statt
Image.Picture.LoadFromStream
Delphi-Quellcode:
.
Image.Picture.Bitmap.LoadFromStream
|
AW: Bitmap aus Stream lesen
Ich bin der Meinung mal gelesen zu haben das LoadFromFile ein Repaint/Refresh/Update/Redraw/o.ä. automatisch ausführt und ein LoadFromStream nicht, warten wir mal ab was hilft :-)
|
AW: Bitmap aus Stream lesen
![]() ![]() ![]()
Delphi-Quellcode:
selbst erstellen.
Graphics.TBitmap
Delphi-Quellcode:
(es gibt mehrere Klassen in Delphi, die TBitmap heißen) weist man einem Bild zu, indem man
Graphics.TBitmap
Delphi-Quellcode:
aufruft (nicht
TPicture.Assign
Delphi-Quellcode:
).
TGraphics.Assign
Delphi-Quellcode:
var
BMP: Graphics.TBitmap; begin TuEtwasMitDem(Stream); BMP := Graphics.TBitmap.Create; BMP.LoadFromStream(Stream); Image1.Picture.Assign(BMP); BMP.Free; end; |
AW: Bitmap aus Stream lesen
Zitat:
Zitat:
außer bei Picture.Graphic.LoadFromStream, wenn man vorher selber für den passenden TGraphic-Typen gesorgt hatte. Das wurde inzwischen aber behoben (Delphi 10.x) ... allerdings weiß ich grade nicht, ob das nur für FMX gilt, oder ob es auch bei der VCL so ist, aber ich glaub das ist nun bei Beiden so. |
AW: Bitmap aus Stream lesen
Delphi-Quellcode:
Ich habe es einfach mal selbst nach gebaut, vielleicht mache ich ja auch etwas anders als wie Du, auf jeden fall klappt es so ohne Fehler, egal ob Repaint oder nicht. Nun frage ich mich, was ist Deine Quelle?
procedure TForm1.Button1Click(Sender: TObject);
var MS: TMemoryStream; begin MS := TMemoryStream.Create(); try Image2.Picture.Bitmap.FreeImage; // hab Versucht ein blinken hervorzurufen, klappt nicht, Code zu schnell. Image2.Repaint; // hab Versucht ein blinken hervorzurufen, klappt nicht, Code zu schnell. Image1.Picture.Bitmap.SaveToStream(MS); MS.Position := 0; Image2.Picture.Bitmap.LoadFromStream(MS); if CheckBox1.Checked then Image2.Repaint; finally MS.Free; end; end; In meinem Beispiel kopiere ich Imaga1 in Stream und lade den in Image2. |
AW: Bitmap aus Stream lesen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:00 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