From a2066d63708e48edee71067f25bc0c80516f4b69 Mon Sep 17 00:00:00 2001 From: Mauricio Date: Mon, 3 Aug 2020 10:48:02 -0400 Subject: [PATCH] fix one-frame apngs not loading correctly --- images.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/images.py b/images.py index 8298691..9df53c9 100644 --- a/images.py +++ b/images.py @@ -28,7 +28,7 @@ def load_apng(file): for frame, frame_info in img.frames: i = img.frames.index((frame, frame_info)) - pilframe = Image.open(io.BytesIO(frame.to_bytes())) + pilframe = Image.open(io.BytesIO(frame.to_bytes())).convert("RGBA") if dispose_op == APNG_DISPOSE_OP_BACKGROUND: pilframe2 = Image.new("RGBA", (width, height), (255,255,255,0)) @@ -46,8 +46,12 @@ def load_apng(file): pilframe2.paste(pilframe, (frame_info.x_offset, frame_info.y_offset), pilframe.convert("RGBA") if frame_info.blend_op == APNG_BLEND_OP_OVER else None) pilframes.append(pilframe2) - frames.append([pilframe2.toqimage(), frame_info.delay*10]) # convert delay from centiseconds to milliseconds - dispose_op = frame_info.depose_op + if frame_info: + frames.append([pilframe2.toqimage(), frame_info.delay*10]) # convert delay from centiseconds to milliseconds + dispose_op = frame_info.depose_op + else: + frames.append([pilframe2.toqimage(), 0]) + return frames