feat: Add animation loop control to DrawImage with repeatCount parameter #2995
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Prerequisites
Description
This pull request enhances the
DrawImagefunctionality by adding animation loop control through a newrepeatCountparameter. This allows users to control how many times animated images (GIFs, APNGs, WebP animations, etc.) should loop when drawn onto another image.Close #2997
Changes Made
repeatCountparameter to allDrawImageextension methods inDrawImageExtensions.csDrawImageProcessorconstructors to accept and store therepeatCountparameterDrawImageProcessor<TPixelBg, TPixelFg>with animation frame cycling logic:currentFrameLoopfield to track animation progressrepeatCount >= 0Key Features
repeatCountparameter controls how many times an animated image loops0= infinite loop>0= specific number of loopsDrawImagemethod signatures are preserved with the new parameter addedUsage Example
Technical Details
currentFrameLoopfieldcurrentFrameIndex = currentFrameLoop % ForegroundImage.Frames.CountrepeatCountrepeatCountis non-negative usingGuard.MustBeGreaterThanOrEqualToImages