Hi,
ich zeige in einer Applikation aus dem Internet heruntergeladene GIFs an (Niederschlagsradarbilder). Die GIFs sind teilweise animiert und größtenteils im Format GIF89A und werden durch Delphi XE3 durch den Typen TGIFImage nativ unterstützt. Die Anzeige der Grafiken in einem TImage klappt auch soweit, es sei denn die animierten GIFs werden in der Anzeige verkleinert, dann treten progressiv schwarze Artefakte bei der Anzeige der Pages auf. Wird die Grafik hingegen in Originalgröße oder vergrößert dargestellt, so treten diese Artefakte nicht auf, siehe Screenshots.
Hier der relevante (sehr vereinfachte) Code, mit dem ich die Grafiken lade und anzeige:
Delphi-Quellcode:
procedure TForm1.bOpenClick(Sender: TObject);
begin
if dlgOpen1.execute then
begin
i1.Picture.LoadFromFile(dlgOpen1.FileName);
lType.Caption := i1.Picture.Graphic.ClassName;
if i1.Picture.Graphic.ClassType = TGIFImage then
begin
with (i1.Picture.Graphic as TGIFImage) do
begin
Animate := True;
AnimateLoop := glContinously;
AnimationSpeed := 100;
end;
end;
end;
end;
Weiss jemand, wodurch die Artefakte auftreten und ob man diesen Effekt irgendwie umgehen kann?