5

我试图转换一个 GIF 图像(Ajax 等):

等待GIF...

到将与 TAnimate 控件(win32 动画控件)一起使用的 AVI。

我尝试了一些工具,但问题是输出的 AVI 要么不适合动画控件,要么不透明。

笔记:

  • 我不使用 Windows XP 主题清单 (D5)。即使我的程序没有主题,Common Avi 也是透明的。
  • 使用 GIF 本身来显示动画不是一种选择。

你知道有什么工具可以帮助我进行这种转换吗?

编辑:

我已尝试将ImageMagicffmpeg一起使用,如此所述。但我似乎无法设置ffmpegmsrle.

4

4 回答 4

5

Jasc Animation Shop 能够直接读取动画 GIF 并写出压缩的 AVI。这是一个旧程序,Corel(收购了 Jasc)似乎不再提供,但您仍然可以找到免费试用版。

于 2012-01-09T21:52:24.727 回答
3

您可以尝试TGIFImage 组件(为 Delphi 5 编写),它声称不仅支持动画 GIF,还支持透明度,以及将 GIF 转换为 AVI 的方法(反之亦然)。

它是否能做到这一切我不能说,因为我没有亲自测试过。就像上面 OP 评论中提到的 TLama 一样,我使用自己的方式以动画方式播放每一帧(只有我的使用 RES 文件和 TImage,其中每一帧都存储为 PNG 以实现完全半透明的支持)。

于 2012-01-09T14:51:50.400 回答
1

许多商业工具执行此转换,包括 Corel Photo Paint 等。Corel Photo Paint 提供免费试用版,它包含在 Corel Draw 包中。(警告:它又大又贵。)我认为 Corel Photo Paint 的转换不会比其他任何人更能解决透明度问题。

在 Google 中输入一些词,也表明ProgDigy的 DSPack 可能会对您有所帮助。

上次我这样做时,我放弃了将 GIF 透明度转换为 AVI-with-transparency 的尝试,因为我找不到任何 AVI 编码工具可以保持透明度。因此,将其保留为 gif 并在您的应用程序中添加一个新控件(正如 LaKraven 建议的那样)的解决方案最终可能优于与之抗争。

于 2012-01-09T15:18:55.383 回答
1

我建议使用 GDIPlus 原生图像渲染器,它可以轻松处理动画 GIF 以及许多其他图像类型,包括多帧 TIFF(目前没有 MNG)。我能够找到一个为 TImage 实例设置动画的示例组件:

http://www.progdigy.com/forums/viewtopic.php?p=13156

请注意我知道您正在寻找 AVI 透明度的解决方案,这只是向用户呈现“进度”的另一种方式,它似乎更轻量级(不依赖于 windows 媒体播放设施)和灵活(如动画控制器可用于任何图像)。

于 2012-01-09T15:44:25.953 回答