Einzelnen Beitrag anzeigen

Benutzerbild von GPRSNerd
GPRSNerd

Registriert seit: 30. Dez 2004
Ort: Ruhrpott
239 Beiträge
 
Delphi 10.4 Sydney
 
#1

Artefakte bei Verkleinerung animierter GIFs

  Alt 12. Mär 2013, 13:34
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?
Miniaturansicht angehängter Grafiken
2013-03-12_133135_100.png   2013-03-12_133053_verkleinert.png  
Stefan
  Mit Zitat antworten Zitat