3
爲什麼我無法直接將MemoryStream分配給圖片? 下面我發佈了兩種分配MemoryStream給TImage的方法。 Method1不起作用,Method2起作用。爲什麼? 感謝 山姆分配JPEG錯誤#42
方法一:該方法返回一個錯誤JPEG#42
Var
ms1 : TMemoryStream;
J : TJPEGImage;
St : String;
begin
ms1 := TMemoryStream.Create;
try
try
St := 'somepath';
IdFTP1.Get(St, ms1);
if ms1.Size > 0 then
Begin
J := TJPEGImage.Create;
try
J.LoadFromStream(ms1);
Image4.Picture := nil;
Image4.Picture.Assign(J); // here, I got an error #42 JPEG
finally
J.Free;
end;
End;
except
on e:exception do ShowMessage(e.message);
end;
finally
ms1.Free;
End;
End;
end;
方法2:此方法
Var
ms1, ms2 : TMemoryStream;
J : TJPEGImage;
St : String;
begin
ms1 := TMemoryStream.Create;
ms2 := TMemoryStream.Create;
try
try
IdFTP1.Get(somepath, ms1);
if ms1.Size > 0 then
Begin
J := TJPEGImage.Create;
try
J.LoadFromStream(ms1);
ms1.SaveToFile('lixofoto.jpg');
ms2.LoadFromFile('lixofoto.jpg');
J.LoadFromStream(ms2);
ImgProd.Picture.Assign(J);
DeleteFile('lixofoto.jpg');
finally
J.Free;
end;
End;
except
end;
finally
ms1.Free;
ms2.Free;
End;
我敢肯定,這之前已經多次在這裏問。搜索該錯誤。 –
@whosrdaddy:它的工作原理。非常感謝 – SammyBF