Fixed using info dictionary when writing multiple APNG frames #5611
+37
−14
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.
Two changes here.
duration
can come fromencoderinfo
orinfo
when saving multiple frames.Pillow/src/PIL/PngImagePlugin.py
Line 1062 in 696b82e
The
duration
variable is only part of the individual frame'sencoderinfo
when it is a list or tuple though, or if it was part of the actual image'sencoderinfo
.Pillow/src/PIL/PngImagePlugin.py
Lines 1082 to 1084 in 696b82e
So when it comes to fetch it for writing, it is ignored.
Pillow/src/PIL/PngImagePlugin.py
Line 1153 in 696b82e
The same applies to
disposal
andblend
.Pillow/src/PIL/PngImagePlugin.py
Lines 1122 to 1125 in 696b82e
Duration is either specified for every frame (in which case the condition is true), or a single value is used (in which case
previous["encoderinfo"]["duration"] = frame_duration
is unnecessary). So theelse
code can be removed.