подушка python увеличивает размер файла gif x10 - PullRequest
0 голосов
/ 20 мая 2019

Я хочу изменить продолжительность анимированного GIF.

Используя Python Pil, я извлекаю кадры, а затем создаю новый GIF с другой продолжительностью.

from PIL import Image, ImageDraw
import os

def extractFrames(inGif):
    frame = Image.open(inGif)
    frames = []
    nframes = 0
    while frame:
        frames.append(frame)
        nframes += 1
        try:
            frame.seek( nframes )
        except EOFError:
            break;
    return frames, nframes

frames, nframes = extractFrames('1.gif')
interval = 100
# In documentation says duration is interval time, but it is total time.
total_duration = nframes*interval
# Save into a GIF file that loops forever
frames[0].save('1_1.gif', format='GIF', append_images=frames[1:], save_all=True, duration=total_duration, loop=0)

Однако размер файла примерно в 10 раз превышает исходное изображение.

Я не понимаю, почему это происходит и можно ли это предотвратить?

Я также пыталсяиспользование Exiftool только для изменения метаданных, но у меня это тоже не работает:

exiftool -overwrite_original -XMP-xmpDM:Duration={Scale="s",Value=14} 1.gif
Warning: Improperly formed structure for XMP-xmpDM:Duration
Warning: Improperly formed structure for XMP-xmpDM:Duration
Nothing to do.
...