AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy/TCP Probleme mit senden von JPG Bildern
Thema durchsuchen
Ansicht
Themen-Optionen

Indy/TCP Probleme mit senden von JPG Bildern

Ein Thema von uspegasus · begonnen am 12. Okt 2004 · letzter Beitrag vom 13. Okt 2004
 
uspegasus

Registriert seit: 8. Okt 2004
3 Beiträge
 
#1

Indy/TCP Probleme mit senden von JPG Bildern

  Alt 12. Okt 2004, 18:50
Hallo Leute! Ich habe folgendes Problem:

Ich möchte mit Indy TCP Server und Client Bilder im Jpeg Format senden und empfangen.
Das senden klappt auch ganz gut aber das Bild lässt sich nach dem auslesen aus dem Stream nicht mehr als Jpeg anzeigen?
Es wird auf der Festplatte als Jpeg gespeichert lässt sich aber nicht mehr aufrufen? Habe festgestellt das das gesendete
Bild immer genau 31 Bytes kleiner ist als das Originalbild! Weis aber nicht warum?

Vielleicht hat einer von euch ne Idee woran das liegen kann. Würde mich sehr freuen wenn ihr mir helfen könntet!

hier der Code:

Delphi-Quellcode:
procedure TfrmMain.Button10Click(Sender: TObject);
var MSGText : String;
var BMPStream : TfileStream;
begin
    if ListView1.SelCount = 0 then begin
       MessageBox(0, 'Bevor sie eine Bildnachricht abschicken müssen sie ein User auswählen!', 'Bildnachricht schicken!', MB_OK or MB_ICONERROR);
       exit;
    end else begin
         MSGText := Memo2.Lines.DelimitedText;
         MSGClient.Host := userIP;
         MSGClient.Port := 9003;
         MSGClient.Connect;
         MSGClient.WriteLn('__'+uname+'__');
         MSGClient.WriteLn('++'+MSGText+'++');
         if MSGClient.Connected then begin
         MSGClient.Disconnect;
         MSGClient.Host := userIP;
         MSGClient.Port := 9003;
         MSGClient.Connect;
         if FileExists(ExtractFilePath(Application.ExeName)+ 'archiv\MessagePic.jpg') then begin
         BMPStream := TfileStream.Create(ExtractFilePath(Application.ExeName)+ 'archiv\MessagePic.jpg',fmOpenRead + fmShareDenyNone); //Das Bild wird in den FileStream eingelesen!
         MSGClient.OpenWriteBuffer;
         MSGClient.WriteStream(BMPStream); //Bild wird geschickt!
         MSGClient.CloseWriteBuffer;
         MSGClient.Disconnect;
         end;
       end;
    end;
end;

procedure TfrmMain.MSGServerExecute(AThread: TIdPeerThread);
var ftmpStream : TFileStream;
var TCopy : String;
var s : String;
var saveText : TextFile;
var savename : String;
var MSGJpeg : TJpegImage;

begin
       MSGcount := MSGcount+1;
       s := AThread.Connection.ReadLn;
       TCopy := copy(s,1,2);
    if Tcopy = '__then begin
       MSGname := s+IntToStr(MSGcount);
       end else begin
    if TCopy = '++then begin
       savename := ExtractFilePath(Application.ExeName)+'message\'+MSGname+'.txt';
       AssignFile(saveText, savename);
       {$i-} Rewrite(saveText); {$i+} 
       if IOResult <> 0 then begin
       MessageBox(0, 'Fehler beim speichern der Nachricht!', 'Bildnachricht schicken!', MB_OK or MB_ICONERROR);
       exit;
       end;
       Write(saveText, s);
       CloseFile(saveText);
       end else begin
           try
           ftmpStream := TFileStream.Create(ExtractFilePath(Application.ExeName)+'message\'+MSGname+'.jpg',fmCreate);
           AThread.Connection.ReadStream(ftmpStream,-1, true); //Der FileStream wird als Jpeg gespeichert. Daten sind da aber das Bild lässt sich nicht öffnen???
           finally
           MSGJpeg := TJpegImage.Create;
           MSGJpeg.LoadFromStream(ftmpStream); //Hier hab ich versucht die Daten direkt vom Stream in das Jpeg zu laden klappt aber nicht? Es werden 0 Bytes übergeben???
           FreeAndNil(ftmpStream);
           MSGJpeg.SaveToFile(ExtractFilePath(Application.ExeName) + 'message\'+MSGname+'.jpg');
           end;
           end;
       end;
end;

Ich habe es auch schon mit TMemoryStream ausprobiert und es klappt auch nicht??
Kann es daran liegen das die Bilder im Jpeg Format sind? TBitmap wäre allerdings viel zu gross.
Es müsste doch auch mit Jpeg gehen oder???


Gruss an alle
uspegasus
  Mit Zitat antworten Zitat
 


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 15:09 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