C#
VB
WinRT C#
C++
Gets or sets the index of the current frame during animation playback.
public int Index { get; set; } Public Property Index As Integer public int Index {get; set;} <br/>get_Index();<br/>set_Index(value);<br/>Object.defineProperty('Index'); An integer value that indicates the index of the current frame during animation playback.
You can use the Index property to skip frames during a playback if required.
This example uses Index to skip frames during a playback
using Leadtools;using Leadtools.Codecs;using Leadtools.ImageProcessing;using Leadtools.Drawing;using LeadtoolsExamples.Common;[Ignore()]public void RasterImageAnimatorIndexExample(Panel panel){// Initialize the RasterCodecs objectRasterCodecs codecs = new RasterCodecs();// Load the animated GIF filestring fileName = Path.Combine(ImagesPath.Path, "Eye.gif");RasterImage animatedImage = codecs.Load(fileName);// Create the target image, we want it to be in the animated image sizeRasterImage targetImage = new RasterImage(RasterMemoryFlags.Conventional,animatedImage.AnimationGlobalSize.Width,animatedImage.AnimationGlobalSize.Height,animatedImage.BitsPerPixel,animatedImage.Order,animatedImage.ViewPerspective,null,IntPtr.Zero,0);// Copy the palette from the animated image to this newly created imageanimatedImage.CopyPaletteTo(targetImage);// Create the RasterImageAnimator objectRasterImageAnimator animator = new RasterImageAnimator(targetImage, animatedImage);// Animate it// Use GDI+ paint engine to support transparent colorsRasterPaintProperties props = RasterPaintProperties.Default;props.PaintEngine = RasterPaintEngine.GdiPlus;Graphics g = panel.CreateGraphics();RasterImageAnimatorState state;do{LeadRect srcRect = new LeadRect(0, 0, targetImage.ImageWidth, targetImage.ImageHeight);LeadRect updateRect;LeadRect destRect;int index;state = animator.Process();switch (state){case RasterImageAnimatorState.WaitDelay:case RasterImageAnimatorState.WaitInputDelay:case RasterImageAnimatorState.Render:// Continue processingbreak;case RasterImageAnimatorState.WaitInput:// In case the animated image has the "wait for user input" flags,// cancel the waitinganimator.CancelWait();break;case RasterImageAnimatorState.PreRender:index = animator.Index;index++;animator.Index = index;break;case RasterImageAnimatorState.PostRender:// Get the area in the target image that has changedupdateRect = animator.GetUpdateRectangle(true);// Paint itdestRect = new LeadRect(0, 0, targetImage.ImageWidth, targetImage.ImageHeight);RasterImagePainter.Paint(targetImage, g, srcRect, updateRect, destRect, destRect, props);break;default:break;}}while (state != RasterImageAnimatorState.End);g.Dispose();animator.Dispose();targetImage.Dispose();animatedImage.Dispose();codecs.Dispose();}
Imports LeadtoolsImports Leadtools.CodecsImports Leadtools.ImageProcessingImports Leadtools.DrawingSub RasterImageAnimatorIndexExample(ByVal panel As Panel)' Initialize the RasterCodecs objectDim codecs As New RasterCodecs()' Load the animated GIF fileDim fileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Eye.gif")Dim animatedImage As RasterImage = codecs.Load(fileName)' Create the target image, we want it to be in the animated image sizeDim targetImage As New RasterImage(RasterMemoryFlags.Conventional,animatedImage.AnimationGlobalSize.Width,animatedImage.AnimationGlobalSize.Height,animatedImage.BitsPerPixel,animatedImage.Order,animatedImage.ViewPerspective,Nothing,IntPtr.Zero,0)' Copy the palette from the animated image to this newly created imageanimatedImage.CopyPaletteTo(targetImage)' Create the RasterImageAnimator objectDim animator As New RasterImageAnimator(targetImage, animatedImage)' Animate it' Use GDI+ paint engine to support transparent colorsDim props As RasterPaintProperties = RasterPaintProperties.Defaultprops.PaintEngine = RasterPaintEngine.GdiPlusDim g As Graphics = panel.CreateGraphics()Dim state As RasterImageAnimatorStateDoDim srcRect As New LeadRect(0, 0, targetImage.ImageWidth, targetImage.ImageHeight)Dim updateRect As LeadRectDim destRect As LeadRectDim index As Integerstate = animator.Process()Select Case (state)Case RasterImageAnimatorState.WaitDelay,RasterImageAnimatorState.WaitInputDelay,RasterImageAnimatorState.Render'Continue processingCase RasterImageAnimatorState.WaitInput' In case the animated image has the "wait for user input" flags,' cancel the waitinganimator.CancelWait()Case RasterImageAnimatorState.PreRenderindex = animator.Indexindex = index + 1animator.Index = indexCase RasterImageAnimatorState.PostRender' Get the area in the target image that has changedupdateRect = animator.GetUpdateRectangle(True)' Paint itdestRect = New LeadRect(0, 0, targetImage.ImageWidth, targetImage.ImageHeight)RasterImagePainter.Paint(targetImage, g, srcRect, updateRect, destRect, destRect, props)End SelectLoop While (state <> RasterImageAnimatorState.End)g.Dispose()animator.Dispose()targetImage.Dispose()animatedImage.Dispose()codecs.Dispose()End SubPublic NotInheritable Class LEAD_VARSPublic Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"End Class
Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET
