无法在 Delphi XE3 中播放 GIF 动画?

Cannot play animated GIF in Delphi XE3?

我从 . The following the instructions in How to use Animated Gif in a delphi form 下载了一个 GIF 动画文件来播放。但是我看到的总是一个没有任何动画的白色块。为什么?

让我详细描述一下过程:

当我尝试添加动画 GIF 时,我看到以下屏幕:

点击“确定”按钮后,我将看到以下内容:

整个项目(Delphi 10.3)在https://www.dropbox.com/s/jbsj86fgpq6qkpi/TestGIF.zip?dl=0

相关代码仅在下方:

procedure TForm1.Button1Click(Sender: TObject);
begin
  (Image1.Picture.Graphic as TGIFImage).Animate := True;
( Image1.Picture.Graphic as TGIFImage ).AnimationSpeed:= 500;
end;

更多信息:

  1. 我看到Vcl.Imaging.GIFImg是我设置图片为GIF后自动添加的
  2. 我在设计器中看不到第一帧,我能看到的是一个白色的块。
  3. 我试过其他GIF images.For静态图片,都可以正常显示。对于动画GIF,当我加载它时,图片编辑器将能够显示第一帧,但是当我select“确定”时,TImage将再次变成白色块。

在我下载了您提到的图像之前,我无法重现该问题。

原因(至少是我可以重现“错误”的唯一方法)是 TImage 默认设计器尺寸为 105 x 105,在这种情况下它显示了一部分(顶部-左)图像。图像为 630 x 637,TImage 中显示的可见部分是左上角的白色区域,旋转器从不绘制该区域。

简单修正就是设置Proportional属性True

另请注意,图片编辑器 window 会缩放图像以适合其视口。