Firemonkey 中的动画 GIF

iPa*_*h ツ 5 delphi gif animated-gif delphi-xe2 firemonkey

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

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

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

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

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

  2. 循环遍历 gif.images:

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

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

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

ser*_*tKK 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 ......所以不能说这些组件是否存在于以前的版本中。