5

我正在尝试使用 TImage 以 Firemonkey HD 形式显示动画 GIF,但我没有看到任何动画方法。

使用 Vcl.Imaging.gifImg 不是一个选项,因为类型不同。

有人可以建议一种解决此问题的方法或可能在 Firemonkey 下为 GIF 图像设置动画的组件吗?

我现在找到的唯一方法是:

  1. 创建 TGIFImage 实例并加载 GIF 图片

  2. 遍历 gif.images:

    一个。将当前图像保存到流

    湾。Image1.bitmap.loadFromStream [Image1 是 FMX:TImage]

有没有更聪明的解决方案?

4

1 回答 1

5

您可以将TBitmapListAnimation与单个图像一起使用,该图像的每个动画帧都在一个长条内。例如,如果您的动画有 4 帧并且是 32 像素 x 32 像素,那么您需要创建一个 128 像素宽 x 32 像素高的图像并并排添加每一帧......

然后将TImage添加到表单中(您不必将位图加载到其中)

添加一个TBitmapListAnimation与 TImage 作为它的父级

双击AnimationBitmap并加载您的动画图像条

下拉PropertyName并选择 Bitmap

在此示例中,将AnimationCount设置为 4 并将AnimationRowCount设置为 1

设置启用为真

TBitmapListAnimation 对动画帧速率、反转、循环和插值有很好的控制。我找不到在 FireMonkey2 中获取 .gif 动画的方法,但如果您有办法将动画 .gif 转换为“卡通片”,那么这是制作动画的好方法。

PS这是Delphi XE3 ......所以不能说这些组件是否存在于以前的版本中。

于 2012-11-16T14:53:00.510 回答