怎么获取网站上的图片,然后直接显示在image上

如何获取网站上的图片,然后直接显示在image上?
远程网站上有个png文件,我用http下载到这个图片的数据,然后保存到硬盘上,再用image载入这个图片,可以正常显示

但是我将数据直接写入tmemorystream,然后用image.pic.loadfromstream(stream)则显示图片文件不对,请问应该如何处理?
------解决方案--------------------
用TImage显示网页http://www.52design.com/pic/200711/20071121134625905.png的PNG图片

新建工程、双击窗体、将下列代码覆盖你的 unit1:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses IdHTTP, ExtCtrls, pngimage;//PNGImage v1.43 可从http://www.delphifans.com/softview/softview_507.html下载,无需安装。

var Image:TImage;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var ms:TMemoryStream;
    Png: TPngObject;
    IdHTTP:TIdHTTP;
begin
  Caption:='显示网页的PNG____中国软件研发联盟QQ群122058606. 广州佬';
  AutoSize:=true;       //让窗体自适应图片的尺寸
  OnCloseQuery:=FormCloseQuery;//关联退出的事件
  IdHTTP:=TIdHTTP.Create(self);
  try
    ms:=TMemoryStream.Create;//建立内存流
    try
      IdHTTP.Get('http://www.52design.com/pic/200711/20071121134625905.png', ms);//将网页的PNG加载到流
      ms.Position:=0;//将指针移到开始位置。  切记莫忘!!!
      Png:=TPngObject.Create;
      try
        Png.LoadFromStream(ms);//将流加载到 TPngObject
        Image:=TImage.Create(self);
        try
          Image.Picture.Assign(Png);//将图复制到 TImage
          Image.Parent:=self;       //指定TImage的宿主
          Image.AutoSize:=true;     //自适应尺寸
        except
          FreeAndNil(Image);
        end;
      finally
        Png.Free;
      end;
    finally
      ms.Free;
    end;
  finally
    IdHTTP.Free;
  end;
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  if Image<>nil then FreeAndNil(Image);
end;

end.