Firemonkey中的动画GIF

时间:2012-08-08 18:35:36

标签: delphi delphi-xe2 gif animated-gif firemonkey

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

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

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

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

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

  2. 循环通过gif.images:

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

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

  3. 有更聪明的解决方案吗?

1 个答案:

答案 0 :(得分:4)

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

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

使用TImage添加 TBitmapListAnimation 作为其父级

双击 AnimationBitmap 并加载动画图像条

下拉 PropertyName 并选择位图

AnimationCount 设为4, AnimationRowCount 为此示例

将启用设置为true

TBitmapListAnimation可以很好地控制动画帧速率,反转,循环和插值。我无法找到一种方法来获取.gif在FireMonkey2中制作动画,但如果你有办法将动画.gif转换为'卡通条',那么这是制作动画的好方法。

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