←Select platform

CancelWait Method

Summary
Cancels the wait for user input and any delay during an animation playback.
Syntax
C#
Objective-C
C++/CLI
Python
public void CancelWait() 
- (BOOL)cancelWait:(NSError **)error; 
public: 
void CancelWait();  
def CancelWait(self): 
Remarks

The "Wait for user input" is supported by GIF89a and later standard. This flag gets set to the corresponding value if this image was loaded from a GIF file. Also, the value set in this property will be used if this image is saved as a GIF file. Otherwise, the LEADTOOLS toolkit will not use the value of this property.

This flag is set in the RasterImage.AnimationWaitUserInput property. The animation playback engine will get into a wait state if it encounters this flag in a frame and the state of the playback will be RasterImageAnimatorState.WaitInput. Use the CancelWait method to exit the wait state and move to the next frame

Example
C#
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using Leadtools.Drawing; 
 
 
RasterImageAnimator _animator; 
RasterImage _targetImage; 
Graphics _graphics; 
LeadRect _destRect; 
RasterPaintProperties _paintProperties; 
 
 
public void RasterImageAppendExample(Panel panel) 
{ 
	// Initialize the RasterCodecs object 
	RasterCodecs codecs = new RasterCodecs(); 
 
	// An animated GIF file 
	string fileName = Path.Combine(LEAD_VARS.ImagesDir, "Eye.gif"); 
 
	// load the first frame, so we have the palette and a target image for playback 
	_targetImage = codecs.Load(fileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1); 
 
	// Create the animator 
	_animator = new RasterImageAnimator(_targetImage, null); 
 
	// Setup our class members used in the event handler 
	_graphics = panel.CreateGraphics(); 
	_destRect = LeadRect.FromLTRB(panel.ClientRectangle.Left, panel.ClientRectangle.Top, panel.ClientRectangle.Right, panel.ClientRectangle.Bottom); 
	_paintProperties = RasterPaintProperties.Default; 
	_paintProperties.PaintEngine = RasterPaintEngine.GdiPlus; 
 
	// Hook to the LoadImage event and load the file 
	codecs.LoadImage += new EventHandler<CodecsLoadImageEventArgs>(Codecs_LoadImage); 
	codecs.Load(fileName); 
	codecs.LoadImage -= new EventHandler<CodecsLoadImageEventArgs>(Codecs_LoadImage); 
 
	_graphics.Dispose(); 
	_animator.Dispose(); 
	_animator = null; 
 
	_targetImage.Dispose(); 
 
	codecs.Dispose(); 
} 
 
void Codecs_LoadImage(object sender, CodecsLoadImageEventArgs e) 
{ 
	if ((e.Flags & CodecsLoadImageFlags.FirstRow) == CodecsLoadImageFlags.FirstRow) 
		_animator.Append(e.Image); 
 
	_animator.ValidateLines(e.Row, e.Lines); 
 
	RasterImageAnimatorState state = _animator.State; 
 
	while (state != RasterImageAnimatorState.End) 
	{ 
		state = _animator.Process(); 
 
		LeadRect updateRect; 
 
		switch (state) 
		{ 
			case RasterImageAnimatorState.WaitInput: 
				_animator.CancelWait(); 
				break; 
 
			case RasterImageAnimatorState.PostClear: 
			case RasterImageAnimatorState.PostRender: 
				updateRect = _animator.GetUpdateRectangle(true); 
				RasterImagePainter.Paint(_targetImage, _graphics, LeadRect.Empty, updateRect, _destRect, LeadRect.Empty, _paintProperties); 
				break; 
		} 
 
		break; 
	} 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; 
} 
Requirements

Target Platforms

Help Version 23.0.2024.5.22
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2024 LEAD Technologies, Inc. All Rights Reserved.

Leadtools Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.