图象存储在tbitmap中  请问如何传输。

解决方案 »

  1.   

    楼主好象问过同样的问题呀,下面不是有你要的答案呀:
    http://community.csdn.net/Expert/topic/3463/3463919.xml?temp=.517666
      

  2.   

    发一个给你吧:
    //客户端:
     //使用timer不断的发送图片内容interval设置为3000
    procedure TForm1.Timer1Timer(Sender: TObject);
    var
        Buf:array[0..BufSize-1] of char;
        sendsize : Integer;
    begin
      //使用jpegStream1.Size来控制截取屏幕snapscreen,
        if jpegStream1.Size=0 then    snapscreen;
           While LeftSize >0  do begin
            if LeftSize > BufSize Then
                sendsize:=BufSize
             else
                sendsize:=LeftSize;
                jpegStream1.ReadBuffer(buf,sendsize);
                LeftSize := LeftSize - sendsize;
              if LeftSize <= 0 then    jpegStream1.Clear;
      //客户端的图片发送,一帧一帧的发送,一帧的大小由 BufSize控制
              self.IdUDPClient1.SendBuffer(buf,sendsize);
          end;
          end;//服务器端:
    procedure Tcontrolform.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
      ABinding: TIdSocketHandle);
    begin
            if AData.Size > 0 then
              begin
               RsltStream.CopyFrom(AData,AData.Size);
               if AData.Size < bufSize then
                  begin
                  RsltStream.Position:=0;
        //          j:=TJpegImage.Create;
                  j.LoadFromStream(RsltStream);
                //  Image1.Picture.Bitmap.LoadFromStream(RsltStream);
                  image1.Picture.Assign(j);
    //              j.Free;
                  RsltStream.Clear;
                  end;
                end;
    end;
      

  3.   

    to liangyong007a(梦里有云,心中有天地) 恩 是问过。但给的答案和结果有点差别。。解决了。项目暂时搁浅了。结贴了。