下面两个Stream有什么不同?
为什么我用第一种方法得不到想要的图片
var
tmp: TMemoryStream;
begin
tmp := TMemoryStream.Create;
Image1.Canvas.LineTo(100,100);
Image1.Picture.Bitmap.SaveToStream(tmp);//成功
tmp.SaveToStream('test.bmp');//成功
Image2.Picture.Bitmap.LoadFromStream(tmp);//不成功,看不到图片无错误提示
end;
而第二种可以?
var
tmp: TMemoryStream;
begin
tmp := TMemoryStream.Create;
tmp.LoadFromFile('test.bmp');
Image2.Picture.Bitmap.LoadFromStream(tmp);//成功,可看到图片
end;
为什么我用第一种方法得不到想要的图片
var
tmp: TMemoryStream;
begin
tmp := TMemoryStream.Create;
Image1.Canvas.LineTo(100,100);
Image1.Picture.Bitmap.SaveToStream(tmp);//成功
tmp.SaveToStream('test.bmp');//成功
Image2.Picture.Bitmap.LoadFromStream(tmp);//不成功,看不到图片无错误提示
end;
而第二种可以?
var
tmp: TMemoryStream;
begin
tmp := TMemoryStream.Create;
tmp.LoadFromFile('test.bmp');
Image2.Picture.Bitmap.LoadFromStream(tmp);//成功,可看到图片
end;
你把流位置重新弄到开始处
如下:
tmp := TMemoryStream.Create;
Image1.Canvas.LineTo(100,100);
Image1.Picture.Bitmap.SaveToStream(tmp);//成功
tmp.Position := 0;
Image2.Picture.Bitmap.LoadFromStream(tmp);//不成功,看不到图片无错误提示
tmp.Free;
tmp: TMemoryStream;
begin
tmp := TMemoryStream.Create;
Image1.Canvas.LineTo(100,100);
Image1.Picture.Bitmap.SaveToStream(tmp);//成功
tmp.SaveToStream('test.bmp');//成功
tmp.Position := 0; //加上这句试试!!
Image2.Picture.Bitmap.LoadFromStream(tmp);//不成功,看不到图片无错误提示
end;
tmp.Position:=0;//加一句
Image2.Picture.Bitmap.LoadFromStream(tmp);
再试试方法一看看!