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
DrawImage
functionality by adding animation loop control through a newrepeatCount
parameter. 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
repeatCount
parameter to allDrawImage
extension methods inDrawImageExtensions.cs
DrawImageProcessor
constructors to accept and store therepeatCount
parameterDrawImageProcessor<TPixelBg, TPixelFg>
with animation frame cycling logic:currentFrameLoop
field to track animation progressrepeatCount >= 0
Key Features
repeatCount
parameter controls how many times an animated image loops0
= infinite loop>0
= specific number of loopsDrawImage
method signatures are preserved with the new parameter addedUsage Example
Technical Details
currentFrameLoop
fieldcurrentFrameIndex = currentFrameLoop % ForegroundImage.Frames.Count
repeatCount
repeatCount
is non-negative usingGuard.MustBeGreaterThanOrEqualTo
Images