【发布时间】:2018-08-30 18:53:44
【问题描述】:
我们的目标是让动画 GIF 在图像组件中播放,即使在调整其中一个图像组件的大小后也具有良好的图像质量。
TImage 示例
这是调整大小的TImage,画质很差,但动画完美无瑕:
// GIF = TGIFImage
// TImage = TImage
GIF.Animate := True;
TImage.Stretch := True;
TImage.Proportional := True;
TImage.Picture.Assign(GIF);
TImage32 示例
这是来自 graphics32 库的调整大小的TImage32,图像质量非常好,但根本没有动画,只有第一帧可见:
// GIF = TGIFImage
// TImage32 = TImage32
GIF.Animate := True;
TImage32.ScaleMode := smResize;
TImage32.BitmapAlign := baCenter;
TImage32.Bitmap.Assign(GIF);
我需要让TImage32 组件播放动画或让TImage 组件进行更好的重采样。
【问题讨论】:
-
在播放动画时重新采样每一帧并不是一个好主意。尝试在这里考虑不同的策略,我不知道,创建例如带有重新采样帧的内存 GIF。
-
或者使用不同大小的不同GIF
-
@RemyLebeau:这样的 GIF 是用户提供的,这就是为什么我不能有不同的 GIF,我只有一个,并且必须在运行时调整大小
-
@Victoria:这正是我目前的解决方法,我在读取文件流后创建了一个调整大小的 TImage32 的堆叠数组,并通过使用 TTask 更改各个帧的可见性来为它们设置动画。但是制作正确的动画很棘手,我想避免那种特殊的蠕虫
标签: delphi animation gif graphics32