首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

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

2012-09-08 
如何获取网站上的图片,然后直接显示在image上?远程网站上有个png文件,我用http下载到这个图片的数据,然后

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

但是我将数据直接写入tmemorystream,然后用image.pic.loadfromstream(stream)则显示图片文件不对,请问应该如何处理?

[解决办法]
用TImage显示网页http://www.52design.com/pic/200711/20071121134625905.png的PNG图片

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

Delphi(Pascal) code
unit Unit1;interfaceuses  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;implementationuses 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. 

热点排行
Bad Request.