如题,发送之后在TidTcpServer所在的窗体上的Image1上显示出来

解决方案 »

  1.   

    img1.Picture.Bitmap.LoadFromFile('c:\test.bmp');
    or
    img1.Picture.Bitmap.LoadFromStream();方式
      

  2.   

    AFileStream: TFileStream; 用文件流进行传输
      

  3.   

    一个例子:unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, IdTCPServer, IdBaseComponent, IdComponent,
      IdTCPConnection, IdTCPClient, ExtCtrls, jpeg;type
      TForm1 = class(TForm)
        imgServer: TImage;
        IdTCPClient1: TIdTCPClient;
        IdTCPServer1: TIdTCPServer;
        btnSend: TButton;
        imgClient: TImage;
        procedure FormCreate(Sender: TObject);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
        procedure IdTCPServer1Execute(AThread: TIdPeerThread);
        procedure btnSendClick(Sender: TObject);
        procedure IdTCPClient1Connected(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    begin
      IdTCPServer1.DefaultPort := 8000;
      IdTCPServer1.Active := True;
      //导入Client端要发送的图片
      imgClient.Picture.LoadFromFile('f:\a.jpg');
    end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      IdTCPServer1.Active := False;
    end;procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
    var
      AStream: TMemoryStream;
    begin
      AStream := TMemoryStream.Create;
      try
        //接收来自Client端的Bitmap数据, 直至Client断开连接
        AThread.Connection.ReadStream(AStream, -1, True);
        AStream.Seek(0, soFromBeginning);
        imgServer.Picture.Bitmap.LoadFromStream(AStream);
      finally
        AStream.Free;
      end;
    end;procedure TForm1.btnSendClick(Sender: TObject);
    //连接Server
    begin
      IdTCPClient1.Host := 'Localhost';
      IdTCPClient1.Port := 8000;
      IdTCPClient1.Connect();
    end;procedure TForm1.IdTCPClient1Connected(Sender: TObject);
    //与Server连接成功
    var
      ABitmap: TBitmap;
      AStream: TMemoryStream;
    begin
      ABitmap := TBitmap.Create;
      try
        //获取Client端图片的Bitmap(不同图片格式均转为Bitmap)
        ABitmap.Assign(imgClient.Picture.Graphic);
        AStream := TMemoryStream.Create;
        try
          //将Bitmap发送给Server
          ABitmap.SaveToStream(AStream);
          AStream.Seek(0, soFromBeginning);
          IdTCPClient1.WriteStream(AStream);
          IdTCPClient1.Disconnect;
        finally
          AStream.Free;
        end;
      finally
        ABitmap.Free;
      end;
    end;end.
      

  4.   

    你好,请问AStream.Seek(0, soFromBeginning); 是什么意思