图象读取错在哪了 ( 积分: 300 )

  • 主题发起人 主题发起人 LSS
  • 开始时间 开始时间
L

LSS

Unregistered / Unconfirmed
GUEST, unregistred user!
var
ChartStream:TMemoryStream;
GifImg:TGIFImage;
begin
GifImg:=TGIFImage.Create;
ChartStream:=TMemoryStream.Create;
IdHTTP1.Get('http://www.wg5i.com/Safecode.asp',ChartStream);
GifImg.LoadFromStream(ChartStream);
ChartStream.Free;
Image1.Picture.Bitmap:=GifImg.Bitmap;
这是一个验证码图像显示程序,对方图象是GIF,使用GIFIMAGE插件
可是运行后总出错误“Premature end of data.”
 
var
ChartStream:TMemoryStream;
GifImg:TGIFImage;
begin
GifImg:=TGIFImage.Create;
ChartStream:=TMemoryStream.Create;
IdHTTP1.Get('http://www.wg5i.com/Safecode.asp',ChartStream);
GifImg.LoadFromStream(ChartStream);
ChartStream.Free;
Image1.Picture.Bitmap:=GifImg.Bitmap;
这是一个验证码图像显示程序,对方图象是GIF,使用GIFIMAGE插件
可是运行后总出错误“Premature end of data.”
 
要把stream的position置到最前面
 
有道理,试试:
var
ChartStream:TMemoryStream;
GifImg:TGIFImage;
begin
GifImg:=TGIFImage.Create;
ChartStream:=TMemoryStream.Create;
IdHTTP1.Get('http://www.wg5i.com/Safecode.asp',ChartStream);

ChartStream.Seek(0, soFromBeginning); // add line

GifImg.LoadFromStream(ChartStream);
ChartStream.Free;
Image1.Picture.Bitmap:=GifImg.Bitmap;
 
多人接受答案了。
 
后退
顶部