Thumbnails: Keep frame durations of GIFs (#4183)

This commit is contained in:
Raphael Michel
2024-06-04 21:53:20 +02:00
committed by GitHub
parent 90ce802a33
commit 7365f165ad

View File

@@ -180,7 +180,11 @@ def create_thumbnail(source, size, formats=None):
except:
raise ThumbnailError('Could not load image')
frames = [resize_image(frame, size) for frame in ImageSequence.Iterator(image)]
frames = []
durations = []
for f in ImageSequence.Iterator(image):
durations.append(f.info.get("duration", 1000))
frames.append(resize_image(f, size))
image_out = frames[0]
save_kwargs = {}
source_ext = os.path.splitext(source_name)[1].lower()
@@ -198,6 +202,8 @@ def create_thumbnail(source, size, formats=None):
'loop': image.info.get('loop', 0),
'save_all': True,
}
if len(frames) > 1 and 'duration' in image.info:
save_kwargs['duration'] = durations
else:
target_ext = 'png'
quality = None