Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Image als Stream versenden (https://www.delphipraxis.net/52558-image-als-stream-versenden.html)

hibbert 30. Aug 2005 22:30


Image als Stream versenden
 
Hi,
ich habe auf meinem Formbaltt ein Image. Dieses Image wird regelmäßig aktualisiert.

Nun möchte ich aber gerne, das dieses Bild als "Livestram" an einen Clienten verschickt wird.

Muss ich dazu erst das Image auf Festplatte speichern und dann als Datei verschicken und vom Clienten neu laden lassen ?

Oder kann ich das ganze auch machen, ohne das Bild abzuspeichern ?

ich bin erstmal für jede Hilfe dankbar.

thx hibbert

storm1988 30. Aug 2005 22:46

Re: Image als Stream versenden
 
Zerbs

Um ein Image als Stream zu versenden musst du so vorgehn:

Delphi-Quellcode:
FStream := TFileStream.Create( pfad, fmCreate );
Image1.Picture.Bitmap.SaveToStream;
Und um es wieder als Image zu speichern:

Delphi-Quellcode:
Image1.Picture.Bitmap.LoadFromStream(FStream)
Mfg st0rm

hibbert 30. Aug 2005 23:04

Re: Image als Stream versenden
 
Hi,
also ich habe da mal gleich was ausprobiert:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var fStream: tfilestream;
begin
FStream := TFileStream.Create(extractfilepath(application.exename)+'test.jpg', fmCreate );
image1.Picture.Bitmap.SaveToStream(FStream);
fstream.Free;
end;
Mit meinem Quelltext wird einfach nur ein Bild namens test.jpg im Programmverzeichnis angelegt.

Wie kann ich dieses Bild nun auf einem anderen PC (zb. im Netzwerk) anzeigen ?

thx hibbert

tigerman33 31. Aug 2005 08:27

Re: Image als Stream versenden
 
Dazu musst du dich wohl noch ein bisschen mit Netzwerk-Programmieren beschäftigen. Da kenn ich mich aber leider nicht aus. :cry:

Aber was anderes: Wenn du nicht erst auf der Festplatte speichern willst, kannst du anstelle eines FileStreams das Bild auch in einem MemoryStream speichern und dann direkt das durchs Netz jagen

storm1988 31. Aug 2005 10:17

Re: Image als Stream versenden
 
Moin

Um den FileStream an einem anderen Computer im Neztwerk oder auch im Internet zu versenden würd ich die Indy 10 Komponente IdTCP verwenden.

Dazu gibts schon einige Threads zum versenden von Streams: Link

Mfg st0rm

ManuMF 31. Aug 2005 10:17

Re: Image als Stream versenden
 
Hallo,

sieh dir erst ein mal diesen Code an.

Dann kannst du im Sender folgendes ersetzen:
Delphi-Quellcode:
var FStream : TMemoryStream;

  FStream := TMemoryStream.Create;
  Bild.Picture.Bitmap.SaveToStream(FStream);
  IDS := TidStreamVCL.Create(FStream);
Und im Empfänger das:
Delphi-Quellcode:
var FSTream : TMemoryStream;

  FStream := TMemoryStream.Create;
  IDS := TidStreamVCL.Create(FStream);

  Bild.Picture.Bitmap.LoadFromStream(FStream);

  FStream.Free;
  IDS.Free;
end;
Die Datei-Open-/Save-Dialoge fallen dann natürlich weg.
Diese Lösung müsste aufs Erste funktionieren.

Wenn nicht, dann nimm doch FileStreams, wie im Beispiel, aber natürlich gespeichert von der Grafik (LoadFromStream...).

Gruß,
ManuMF

hibbert 31. Aug 2005 19:33

Re: Image als Stream versenden
 
hi,
ich habe zwar kein indy10 habe es aber mit den indy 9 hinbekommen, ist ja nicht ganz anders :wink:

vielen dank.

nun habe ich noch eine letzte Frage:

kann ich IdTcpClient und IdTcpServer auf ein Formblatt packen und beie auf active = true stellen ? Beide Kompos laufen über den gleichen port, nur der Client hat einen anderen Rechner als Host.

Geht das gut, oder eher nicht ? Denn ich möchte ja geren zwischen 2 PC Dateien austauschen, undzwar gleichzeitig.

thx hibbert

ManuMF 1. Sep 2005 09:00

Re: Image als Stream versenden
 
Einfach mal ausprobieren ;-)

(Zumindest bei Indy 10) Hat nur der Server die Eigenschaft Active. Theoretisch dürfe es aber kein Problem sein, nur wenn man zwei Clients oder zwei Server auf einer Form hat, könnte es Probleme geben.

hibbert 2. Sep 2005 17:09

Re: Image als Stream versenden
 
ok ich habs ausprobiert und es geht, naja ich muss noch dran arbeiten :wink:

danke !!

storm1988 2. Sep 2005 17:22

Re: Image als Stream versenden
 
Mhhh, für was willst du überhaupt einen Server und einen Client gleichzeitig in einem Prozess packen??? Denn das versenden von Streams funst eh in beide Richtungen.

Mfg


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:07 Uhr.
Seite 1 von 2  1 2      

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