Merge pull request #1 from radarhere/round-error

Added test
This commit is contained in:
Rn 2021-07-13 18:12:53 +09:00 committed by GitHub
commit ca0738dbf6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 5 deletions

View File

@ -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

View File

@ -1117,12 +1117,12 @@ def _write_multiple_frames(im, fp, chunk, rawmode):
and prev_disposal == encoderinfo.get("disposal")
and prev_blend == encoderinfo.get("blend")
):
now_duration = encoderinfo.get("duration", 0)
if now_duration:
frame_duration = encoderinfo.get("duration", 0)
if frame_duration:
if "duration" in previous["encoderinfo"]:
previous["encoderinfo"]["duration"] += now_duration
previous["encoderinfo"]["duration"] += frame_duration
else:
previous["encoderinfo"]["duration"] = now_duration
previous["encoderinfo"]["duration"] = frame_duration
continue
else:
bbox = None