Picture.Graphic.LoadFromStream(..)
wird einen Fehler verursachen, das hat mit dem Aufbau von TGraphic zu tun.
Wenn du Bilder vom Web laden willst kennst du doch deren Endung, also .jpg. bmp. .gif etc.
danach kannst du entscheiden wie und was du laden möchtest.
zB.:
Delphi-Quellcode:
uses ..., IdHTTP, PngImage, Jpeg, GifImage;
// ...
function DownloadImageByName(
const URL :
string; Image: TImage): Boolean;
var
idHttp: TIdHTTP;
ImgStream: TMemoryStream;
FExt:
String;
begin
Result := False;
if ASSIGNED(Image)
then
begin
ImgStream := TMemoryStream.Create;
try
idHttp := TIdHTTP.Create(
nil);
try
idHttp.Get(
URL, ImgStream);
finally
idHttp.Free;
end;
if ImgStream.Size > 0
then
begin
FExt := ExtractFileExt(
URL);
ImgStream.Position := 0;
if AnsiLowerCase(FExt) = '
.bmp'
then
begin
Image.Picture.Assign(TBitmap(ImgStream));
Result := True;
end else
if (AnsiLowerCase(FExt) = '
.jpg')
or( AnsiLowerCase(FExt) = '
.jpeg')
then
begin
Image.Picture.Assign(TJpegImage(ImgStream));
Result := True;
end else
if AnsiLowerCase(FExt) = '
.png'
then
begin
Image.Picture.Assign(TPNGObject(ImgStream));
Result := True;
end else
if AnsiLowerCase(FExt) = '
.gif'
then
begin
Image.Picture.Assign(TGifImage(ImgStream));
Result := True;
end else
ShowMessage('
Nicht unterstütztes Bildformat: ' + FExt);
end else
ShowMessage('
Kein Daten geleden !');
finally
ImgStream.Free;
end;
end else
ShowMessage('
Kein gültiges Image angegeben !');
end;
Das ist frei nach Nase getippt, keine Funktionsgarantie!