mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-12-25 09:26:16 +03:00
Merge pull request #5609 from thak1411/round-error
Fixed error saving APNG with duplicate frames and different duration times
This commit is contained in:
commit
1fd0411ee4
|
@ -433,7 +433,9 @@ def test_apng_save_duration_loop(tmp_path):
|
|||
|
||||
# test removal of duplicated frames
|
||||
frame = Image.new("RGBA", (128, 64), (255, 0, 0, 255))
|
||||
frame.save(test_file, save_all=True, append_images=[frame], duration=[500, 250])
|
||||
frame.save(
|
||||
test_file, save_all=True, append_images=[frame, frame], duration=[500, 100, 150]
|
||||
)
|
||||
with Image.open(test_file) as im:
|
||||
im.load()
|
||||
assert im.n_frames == 1
|
||||
|
|
|
@ -1117,12 +1117,12 @@ def _write_multiple_frames(im, fp, chunk, rawmode):
|
|||
and prev_disposal == encoderinfo.get("disposal")
|
||||
and prev_blend == encoderinfo.get("blend")
|
||||
):
|
||||
duration = encoderinfo.get("duration", 0)
|
||||
if duration:
|
||||
frame_duration = encoderinfo.get("duration", 0)
|
||||
if frame_duration:
|
||||
if "duration" in previous["encoderinfo"]:
|
||||
previous["encoderinfo"]["duration"] += duration
|
||||
previous["encoderinfo"]["duration"] += frame_duration
|
||||
else:
|
||||
previous["encoderinfo"]["duration"] = duration
|
||||
previous["encoderinfo"]["duration"] = frame_duration
|
||||
continue
|
||||
else:
|
||||
bbox = None
|
||||
|
|
Loading…
Reference in New Issue
Block a user