TImageEnIO.GIFFrameCaching
Declaration
property GIFFrameCaching: TIEGIFFrameCaching;
Description
Whether frames of animated/multi-frame GIF should be cached to speed up subsequent loading.
Animated GIF files are usually optimized which requires the loading of all previous frames to access the content of a desired frame (because frames are merged together).
This can be slow with large GIF files so
GIFFrameCaching enables caching of the previously loaded frame.
Value | Description |
iefcNever | GIF frames are not cached |
iefcAuto | The previous GIF frame is cached when playing or seeking a multi-frame GIF |
iefcAlways | The previous GIF frame is always cached (so subsequent loads of the current or next frame are much faster) |
iefcAllFrames | All frames of the GIF are cached on first load. This will make the initial load much slower, but adhoc access to any frame will be instaneous |
Default: iefcAuto (cached only when
playing or
seeking)
// General usage to speed up loading of GIF frames
ImageEnView1.IO.GIFFrameCaching := iefcAlways;
cnt := IEGetFileFramesCount( GetGifFilename() );
for i := 0 to cnt - 1 do
begin
ImageEnView1.IO.GIF_ImageIndex := i;
ImageEnView1.IO.LoadFromFileGIF( GetGifFilename() );
ImageEnView1.IO.PrintImage();
end;
// Caching of all frames so that we can access random frames very quickly (initial load is slower, and uses more memory)
ImageEnView1.IO.GIFFrameCaching := iefcAllFrames;
ImageEnView1.IO.GIF_ImageIndex := idx;
ImageEnView1.IO.LoadFromFileGIF( GetGifFilename() );
See Also
◼GIF_RAWLoad
◼GIF_Action
◼GIF_XPos
◼GIF_YPos