delphi - Firemonkey 中的动画 GIF

标签 delphi delphi-xe2 gif animated-gif firemonkey

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

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

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

我目前找到的唯一方法是:

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

  2. 循环遍历 gif.images:

    a.将当前图像保存到流

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

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

最佳答案

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

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

添加一个 TBitmapListAnimation,并将 TImage 作为其父级

双击AnimationBitmap并加载动画图像条

下拉PropertyName并选择位图

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

将启用设置为 true

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

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

关于delphi - Firemonkey 中的动画 GIF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11870944/

相关文章:

java - 学习java...到底为什么这个图像会闪烁?

delphi - 使用 ADO 从另一个表上的查询创建新表

delphi - 如何禁用控制台快速编辑模式

delphi - 如何将包含 TPngImage 的 TImage 保存为位图文件?

delphi - 如何转换数据类型来调用COM过程?

ffmpeg - 使用 ffmpeg 从电影文件创建的 GIF 尺寸非常大

delphi - 我无法在 tidhttpServer 中获取请求的来源

windows - 为什么 CreateProcess 给出错误 193(%1 不是有效的 Win32 应用程序)

delphi - 从 Chromium Embedded 获取 HTML 源代码

android - 如何在 react-native android 应用程序中显示 GIF?