哪个图片控件可以放远程的图片
比如 wwww.xxxx.xx/图片   图片控件可以显示出该连接的图片

解决方案 »

  1.   

    好像挺麻烦  给你找段代码 你研究下吧{抓屏幕图像,保存为内存流--BMP流,压缩BMP流,JPG流,以及使用流}
    {在网络中传送BMP流和JPG流的速度没测试过}
    {BMP流的压缩是无损压缩}
    {
    全局变量
    memoryStream:TMemoryStream;
    memoryStream:=TMemoryStream.create;
    }var
    image:Timage;
    jpgstream:TJPEGImage;
    ss:tcanvas;begin
    ss:=tcanvas.Create;
    ss.Handle:=getdc(0);
    image:=timage.Create(self);
    image.width:=Screen.width;
    image.Height:=screen.Height ;
    image.picture.bitmap.PixelFormat:= pf16bit;
    bitblt(image.canvas.handle,0,0,image.width,image.height,ss.handle,0,0,srccopy);{大大的原始BMP流
    image.picture.bitmap.SaveToStream(memoryStream);
    }{无损压缩BMP流  uses Zlib.pas
    {先定义变量count,DestStream,SourceStream}
    image.picture.bitmap.SaveToStream(memoryStream);
    Count:=memoryStream.Size;
    DestStream:=TMemoryStream.Create;
    {压缩方式:clnone,clfastest,cldefault,clmax}
    SourceStream:=TCompressionStream.Create(cldefault, DestStream);
    try
    memoryStream.SaveToStream(SourceStream);
    SourceStream.Free;
    memoryStream.Clear;
    memoryStream.WriteBuffer(Count, SizeOf(Count));
    memoryStream.CopyFrom(DestStream, 0);
    finally
    DestStream.Free;
    end;
    }{JPG流  uses jpeg
    jpgstream:= TJPEGImage.Create;
    jpgstream.Assign(image.picture.bitmap);
    jpgstream.CompressionQuality:=50; {压缩质量}
    jpgstream.Compress;
    jpgstream.SaveToStream(memoryStream);{保存为JPG流}
    jpgstream.free;
    }ReleaseDC(0,ss.Handle);
    image.free;{发送内存流...}-----------------------------------------------------
    {接收内存流...}{使用BMP流
    image.Picture.Bitmap.LoadFromStream(bmpStream);}{还原压缩的BMP流  uses:Zlib.pas
    先定义变量count,buffer,DestStream,SourceStream
    memoryStream是压缩的BMP流
    memoryStream.ReadBuffer(Count, SizeOf(Count));
    GetMem(Buffer, Count);
    DestStream:=TMemoryStream.Create;
    SourceStream:=TDecompressionStream.Create(memoryStream);
    Try
    SourceStream.ReadBuffer(Buffer^, Count);
      DestStream.WriteBuffer(Buffer^, Count);
      DestStream.Position:=0;
      image.Picture.Bitmap.LoadFromStream(DestStream);
    finally
    FreeMem(Buffer);
    DestStream.Free;
    end;
    }使用JPG流 image.Picture.Assign(jpgstream);
      

  2.   

    TWebBrowser好像可以 自己研究下吧
      

  3.   

    1. 用 TWebBrowser ;
    2. TIdHTTP 和 TImage 进行组合使用。
      

  4.   

    打开Delphi,在Internet面板上放一个WebBrowser控件。然后双击窗体空白处,写代码:WebBrowser1.Navigate('http://JPg或GIF等图片格式的地址');这是最简单的方法。不过界面不如TIdHTTP 和 TImage 进行组合使用精致。但后者就没有这么方便了。后者思路是用TIdHTTP 读取一个流,然后把这个流载入到Image里面。
      

  5.   

    WebBrowser 不好  我只要放个图片而不是网站 所以他四周有白色空隙  是否可以去掉白色的空隙
      

  6.   

    用TIdHTTP可以直接获取图象的数据流,然后用TImage显示就行了.
      

  7.   

    TIdHTTP可以直接获取图象的数据流,然后用TImage显示就行了没有做过这个 是否可以提供下这套代码 我再加100分 谢谢
      

  8.   


    //TImage 直接从流中直接读取图片的方法总是没有办法成功
    //下面是保存到本地后再显示的笨方法
    //知道怎样不用直接保存到本地的方法的兄弟,谢谢共享一下方法
    procedure TForm1.Button1Click(Sender: TObject);
    var
      sStream: TMemoryStream;
    begin
      Image1.AutoSize := True;
      IdHTTP1.HandleRedirects := True;
      IdHTTP1.ReadTimeout := 30000;   
      sStream := TMemoryStream.Create;
      try
        IdHTTP1.Get('http://profile.csdn.net/liyinwei/picture/2.jpg',sStream);
        sStream.SaveToFile('c:\2.jpg');
        Image1.Picture.LoadFromFile('c:\2.jpg');
        ShowMessage('成功');
      except
        ShowMessage('错误');
      end;
      sStream.Free;
    end;
      

  9.   

    不能,因为 TImage 没有解释 HTTP 的能力
    就好像人为什么不能飞一样,因为没有翅膀。