我正在尝试使用 TImage 以 Firemonkey HD 形式显示动画 GIF,但我没有看到任何动画方法。
使用 Vcl.Imaging.gifImg 不是一个选项,因为类型不同。
有人可以建议一种方法来解决这个问题,或者可能是在 Firemonkey 下为 GIF 图像制作动画的组件吗?
我目前找到的唯一方法是:
创建TGIFImage实例并加载GIF图像
循环遍历 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/