Einzelnen Beitrag anzeigen

4lb3rtO

Registriert seit: 11. Okt 2011
11 Beiträge
 
Delphi 2010 Professional
 
#4

AW: Indy MemoryStream JPEG Fehler 42

  Alt 4. Nov 2012, 17:58
Ich danke euch vielmals. Hab Stunden damit verbracht eine Lösung dafür zu finden.

@stahli: Bei der umfangreichen Google-Suche bin ich auch auf dein Demo-Projekt gestoßen. Nur konnte ich leider aufgrund meiner bescheidenen Delphi Kenntnisse nicht allzu viel damit anfangen


So funktioniert es zumindest:
Client:
Delphi-Quellcode:
procedure TForm1.Senden_BClick(Sender: TObject);
var
  ms: TMemoryStream;
  jpg: TJpegImage;
  siz: Integer;

begin
  ms := TMemoryStream.Create;
  jpg := TJpegImage.Create;

  jpg.Assign(Image1.Picture);
  jpg.SaveToStream(ms);
  ms.Position := 0;
  IdTCPClient1.IOHandler.Write(ms, 0, True);

  ms.Free;
  jpg.Free;
end;


Server:
Delphi-Quellcode:
procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);
var
  ms: TMemoryStream;
  jpg: TJpegImage;
  siz: Integer;

begin
  ms := TMemoryStream.Create;
  jpg := TJpegImage.Create;

  siz := AContext.Connection.IOHandler.ReadLongInt;
  AContext.Connection.IOHandler.ReadStream(ms, siz);

  ms.Position := 0;
  jpg.LoadFromStream(ms);
  Image1.Picture.Assign(jpg);

  ms.Free;
  jpg.Free;
end;

Schönen Abend noch
4lb3rtO
  Mit Zitat antworten Zitat